import { Meta } from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/functional-basic/Functions/isSelected - Проверка выбранного значения'/>

# `isSelected`

Универсальная утилита для проверки, выбрано ли конкретное значение. Функция поддерживает различные сценарии сравнения в зависимости от типа переданного аргумента выборки (`selected`):

1. **Защита от нулевых значений:** Если проверяемое значение (`value`) равно `null` или `undefined`, функция мгновенно вернет `false`.
2. **Сравнение с массивом:** Если аргумент `selected` является массивом `[]`, функция проверит, включено ли значение (`value`) в этот массив через `.includes(value)`.
3. **Строгое числовое сравнение:** Если оба аргумента (как `value`, так и `selected`) квалифицируются как числовые (срабатывает функция утилиты `isNumber()`), скрипт безопасно преобразует и сравнивает их как числа, игнорируя типизацию строки (например, `'5' === 5`).
4. **Стандартное сравнение:** В остальных случаях функция использует строгое равенство `value === selected`.

**Параметры:**
- `value: T` — Проверяемое значение (пользовательский ввод, элемент списка).
- `selected: T | T[] | S` — Целевое значение, с которым происходит сравнение. Это может быть примитив или массив ожидаемых значений.

**Возвращает:**
`boolean` — Вернет `true`, если входное значение совпадает с критериями выбранных данных, и `false`, если нет.

```typescript
import { isSelected } from '@dxtmisha/functional-basic'

// Одиночные сравнения
console.log(isSelected('apple', 'apple')) // true
console.log(isSelected('apple', 'banana')) // false

// Сравнивание с массивом
console.log(isSelected(2, [1, 2, 3])) // true
console.log(isSelected('dog', ['cat', 'mouse'])) // false

// Интеллектуальное числовое сравнение (строка vs число)
console.log(isSelected('5', 5)) // true

// Ловушки
console.log(isSelected(null, 1)) // false
```
