# Действия с массивами

Source: https://docs.botman.pro/a/245-deystviya-s-massivami

В шаге «Действия» можно заменить массив целиком, добавить или удалить элемент и очистить поле. Операции доступны для пользовательских и глобальных массивов.

Если массив ещё не создан, сначала прочитайте статью [«Массивы: создание, формат и использование»](https://docs.botman.pro/a/192-massivy-sozdanie-format-i-ispolzovanie).

## Как добавить действие

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

*Операции, доступные для массива*

## Установить значение

Операция заменяет весь текущий массив новым. Старые элементы не сохраняются.

Примеры:

`["Онлайн-курс", "Консультация", "Чек-лист"]`

`[10, 20, 30]`

`["2026-09-01", "2026-09-15"]`

`["2026-09-01T09:30:00Z", "2026-09-01T12:00:00Z"]`

`[`\
`{"name": "Онлайн-курс", "price": 2990},`\
`{"name": "Консультация", "price": 1500}`\
`]`

Чтобы установить пустой массив, укажите `[]`. Если нужно полностью удалить значение пользовательского поля, используйте операцию «Очистить поле».

## Добавить элемент в конец

Операция добавляет один элемент после всех существующих. Если у пользовательского массива ещё нет значения, BotMan создаст список и добавит в него первый элемент.

*Добавление одного элемента в конец массива*

Указывайте один элемент, а не массив:

| Тип массива | Значение |
| --- | --- |
| Текст | `"Онлайн-курс"` |
| Число | `2990` |
| Дата | `"2026-09-15"` |
| Дата и время | `"2026-09-15T14:45:00Z"` |
| Объект | `{"name": "Онлайн-курс", "price": 2990}` |

В значении можно использовать переменные. Например:

`{"name": {Название товара}, "price": {Цена товара}}`

После подстановки переменных результат должен оставаться корректным JSON и соответствовать типу элементов массива.

## Удалить элемент по индексу

Индекс — это позиция элемента, начиная с нуля:

| Индекс | Какой элемент будет удалён |
| --- | --- |
| `0` | первый |
| `1` | второй |
| `2` | третий |

Для массива `["A", "B", "C"]` удаление индекса `1` даст результат `["A", "C"]`.

Если индекс отрицательный или больше последнего доступного индекса, массив не изменится.

## Удалить элемент по значению

Операция находит точное совпадение и удаляет только первое найденное значение.

| Тип массива | Значение для удаления |
| --- | --- |
| Текст | `"Онлайн-курс"` |
| Число | `2990` |
| Дата | `"2026-09-01"` |
| Дата и время | `"2026-09-01T09:30:00Z"` |
| Объект | `{"name": "Онлайн-курс", "price": 2990}` |

Для объектов должны совпасть ключи и значения объекта. Если совпадения нет, массив не изменится.

Пример: в массиве `["A", "B", "A"]` удаление значения `"A"` даст `["B", "A"]`.

## Очистить поле

Операция удаляет текущее значение массива.

- Для пользовательского массива поле подписчика становится незаполненным.
- Для глобального массива общее значение очищается для всех сценариев, которые используют эту переменную.

Проверка «Пустой» считает пустыми и `[]`, и поле без значения. Функция «Количество элементов массива» в обоих случаях возвращает `0`.

## Частые ошибки

### Текст без кавычек

Неправильно: `Онлайн-курс`

Правильно: `"Онлайн-курс"`

### Число в кавычках

Для числового массива используйте `2990`, а не `"2990"`.

### Одинарные кавычки

JSON принимает двойные кавычки: `"Москва"`. Запись `'Москва'` не подходит.

### Массив вместо одного элемента

В операции «Добавить элемент в конец» укажите `"Москва"`, а не `["Москва"]`.

### Изменение глобального массива

Глобальная переменная общая. Если действие удалит из неё значение, изменение увидят все подписчики и сценарии аккаунта. Для персональных списков используйте пользовательское поле.

## Следующий шаг

Чтобы построить разные ветки сценария в зависимости от содержимого массива, используйте статью [«Проверка массива»](https://docs.botman.pro/a/182-proverka-massiva).

