Перейти к основному содержимому

Как вывести несколько элементов массива

подсказка
Для подключения интеграции используйте готовый блок Интеграция с Google Таблицами.

Из этой статьи вы узнаете, как выводить из Google Таблиц не одну строку, а сразу несколько.

Данная инструкция применима не только к Google Таблицам: таким образом можно выводить элементы любого массива. Это может быть полезно, если вы хотите выводить своим пользователям сразу по несколько товаров, ссылок и т. п.

Создание Google Таблицы и получение URL

Создайте таблицу с заметками и добавьте в нее столбец note.

Как и при чтении только одной строки из Google Таблиц, в первую очередь необходимо опубликовать таблицу и получить URL для обращения к таблице.

Выполните эти шаги в соответствии с инструкцией.

Добавление HTTP-запроса к таблице

В вашем сценарии добавьте блок HTTP-запрос.

В поле URL вставьте ссылку, полученную на предыдущем шаге.

Для чтения данных используется метод GET.

На вкладке RESPONSE создайте переменную $items со значением $httpResponse.

Для чтения из таблиц вкладки BODY и HEADERS заполнять не нужно.

Добавление других блоков в сценарий

Выявление ошибок

От варианта Завершен с ошибкой сделайте связь с блоком Текст, в котором укажите значение ошибка $httpStatus.

Этот экран поможет вам понять, в чем причина неполадки, если запрос не будет завершаться успешно.

Вывод первого элемента массива

От варианта Завершен успешно сделайте связь с блоком Условия, в котором укажите выражение $items.first().

Здесь используется встроенная функция first, чтобы вывести первый элемент массива.

Присвоение нуля

От условия $items.first() сделайте связь со следующим блоком Условия, в котором напишите $index = 0.

Свяжите оба варианта — и true, и else — со следующим экраном. Так как здесь переменной присваивается 0, нужно связывать оба варианта.

Вывод текущей заметки

На следующем экране добавьте блок Текст и напишите в нем $items.current().note.

Здесь вы выводите текущую заметку. На этот же экран добавьте блок Переход.

Переход к следующей заметке

От блока Переход создайте блок Условия, в котором напишите $items.next().

Проверка оставшихся элементов массива

С помощью функции next проверьте, есть ли еще элементы массива.

От else сделайте связь с новым экраном, на который добавьте блок Текст с сообщением Заметок больше нет.

От $items.next() сделайте связь с блоком Условия, в котором напишите
$index = $index + 1.

Если есть еще один элемент массива, то к переменной $index прибавится 1. Таким образом будет осуществляться подсчет числа выведенных элементов.

От $index = $index + 1 сделайте связь с блоком Условия, в котором напишите
$index % 5 == 0.

Здесь используется оператор Остаток от деления языка JavaScript. Этот оператор возвращает остаток от деления левого операнда на правый — то есть, остаток деления $index на 5.

Также здесь используется оператор сравнения ==, который сравнивает остаток от деления с 0.

В условии $index % 5 == 0 свяжите else с экраном $items.current().note.

Если остаток от деления $index на 5 не равен 0, то будет выведена следующая заметка.

Если были выведены только две заметки, то остаток от деления 2 на 5 не будет равен 0, поэтому будет выведена следующая заметка. Это будет происходить до тех пор, пока $index не будет равен 5.

Условие $index % 5 == 0 свяжите с экраном Вывести еще 5?.

Добавьте на этот экран кнопку Да или готовый интент Согласие и свяжите с экраном $items.current().note.

Готовый сценарий

В итоге у вас получится следующий сценарий:

В этом сценарии бот выведет 5 элементов массива. После этого, если в массиве остались элементы, бот спросит, вывести ли еще 5 элементов. Если клиент ответит «да», то бот будет выводить элементы массива до тех пор, пока они не закончатся.