# Проверка массива

Source: https://docs.botman.pro/a/182-proverka-massiva

Шаг «Условие» умеет проверять пользовательские и глобальные массивы напрямую. Для обычной развилки не нужно сначала сохранять количество элементов в отдельное поле.

Например, чтобы отправить подписчика к оформлению заказа, можно проверить: «Товары в корзине» → «Не пустой».

## Как добавить проверку

1. Добавьте в сценарий шаг «Условие».
2. Нажмите «Добавить условие».
3. Откройте «Проверка поля».
4. Выберите «Пользовательские поля» или «Глобальные переменные».
5. Выберите массив.
6. Выберите оператор, укажите значение, если оно требуется, и сохраните шаг.
7. Настройте переходы для веток «Да» и «Нет».

![Добавление проверки поля в шаге «Условие»](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/907d884eb0ad1b576441293ce9c4c0473c3139dcb80712cf46a848a5eef181ea.jpg)

*Добавление проверки поля в шаге «Условие»*

## Доступные проверки

| Оператор | Что проверяет | Пример |
| --- | --- | --- |
| Пустой | У массива нет значения или в нём нет элементов | Корзина пуста |
| Не пустой | В массиве есть хотя бы один элемент | В корзине есть товар |
| Содержит значение | В массиве есть заданное значение | Города содержат «Казань» |
| Не содержит значение | В массиве нет заданного значения | Избранное не содержит товар |
| Количество элементов равно | Размер массива равен числу | Выбрано ровно 3 варианта |
| Количество элементов больше | Размер массива больше числа | В корзине больше 2 товаров |
| Количество элементов меньше | Размер массива меньше числа | Осталось меньше 5 дат |

## Проверить, пустой ли массив

Выберите оператор «Пустой». Условие сработает в двух случаях:

- поле ещё не получило значение;
- значение массива равно `[]`.

Для противоположной проверки выберите «Не пустой».

Если нужна только развилка «есть элементы / нет элементов», это проще, чем сравнивать количество с нулём.

## Проверить наличие значения

Для текстового массива укажите текст, для числового — число, для массива дат — дату соответствующего формата.

Пример:

`Доступные города → Содержит значение → Казань`

Сравнение точное. Для массива объектов проверка срабатывает, если указанное значение совпадает со значением хотя бы одного поля объекта. Например, массив

`[{"name": "Онлайн-курс", "price": 2990}]`

содержит значения `Онлайн-курс` и `2990`.

## Сравнить количество элементов

Выберите один из операторов количества и укажите целое число.

Примеры:

`Товары в корзине → Количество элементов равно → 3`

`Товары в корзине → Количество элементов больше → 2`

`Доступные города → Количество элементов меньше → 10`

Сравнение выполняется с текущим размером массива в момент прохождения подписчиком шага.

## Когда нужна функция array\_length

Для простой проверки используйте оператор количества прямо в шаге «Условие».

Функция «Количество элементов массива» нужна, если результат требуется:

- сохранить в числовое поле;
- вывести в сообщении;
- использовать несколько раз в разных шагах;
- включить в математическую формулу.

![Функция «Количество элементов массива»](https://storage.yandexcloud.net/botman-knowledge-prod/kb/6aec5304d3ac9dc31d82ccf6/3f8b501fb01c642e3fa22df6014f72cf4b01884067390eaddc7de8f5ad0605a0.jpg)

*Функция «Количество элементов массива»*

Для пустого массива или массива без значения функция возвращает `0`.

## Пример с промежуточным числовым полем

Допустим, количество товаров нужно сначала сохранить, затем показать подписчику и использовать в условии.

1. Создайте числовое пользовательское поле «Количество товаров».
2. Добавьте шаг «Действия».
3. Выберите поле «Количество товаров».
4. Выберите «Математические операции со значением».
5. В меню переменных и функций выберите «Количество элементов массива».
6. Выберите массив «Товары в корзине» и сохраните действие.
7. В следующем сообщении вставьте поле «Количество товаров».
8. В шаге «Условие» проверьте числовое поле, например «Больше чем 2».

Если количество не нужно сохранять или показывать, пропустите числовое поле и проверьте массив напрямую.

## Несколько условий в одном шаге

В верхней части шага выберите режим:

- «Соответствует каждому из условий» — должны выполниться все проверки;
- «Соответствует любому из условий» — достаточно одной проверки.

Например, можно проверить, что корзина не пуста и содержит конкретный товар.

## Что читать дальше

- [Массивы: создание, формат и использование](https://docs.botman.pro/a/192-massivy-sozdanie-format-i-ispolzovanie)
- [Действия с массивами](https://docs.botman.pro/a/245-deystviya-s-massivami)
- [Проверка поля](https://docs.botman.pro/a/137-proverka-polya)

