QNext. Макрос array
Макрос позволяет делать различные манипуляции со списками(массивами, Array в терминологии JavaScript). Для работы с этим макросом, у вас должен где то лежать список(массив) элементов. Это может быть локальная или глобальная переменная, или какой то результат выполнения скрипта. Найти список(массив) можно в логах. В логах списки(массивы) помечаются квадратными скобками [ ... ]
:
В этом примере у нас в localVar
переменных лежит локальная переменная myArrayList
, которая является список, и в этом списке у нас 3 элемента:
- текст "test"
- число 123
- текст "abc"
Чтобы ботом вывести например количество элементов этого списка, вы можете воспользоваться макросом:
!{array| path: localVar.myArrayList; type: length; }
Макрос выполняет различные действия, в зависимости от значения параметра type
:
- type: length
- type: indexOf
- type: lastIndexOf
- type: join
- type: at
type: length
Количество элементов в списке:
!{array| path: localVar.myArrayList; type: length; }
type: indexOf
Найти номер позиции элемента в списке. Например вы хотите найти в какой позиции находит текст "abc"
:
!{array| path: localVar.myArrayList; type: indexOf; element: abc; }
Макрос вернет значение 2
, потому что позиционирование элементов а массиве начинается не с 1
с номера 0
.
type: lastIndexOf
Тоже самое что и type: indexOf
, только поиска начинается с конца массива:
!{array| path: localVar.myArrayList; type: lastIndexOf; element: abc; }
type: join
Преобразовывает массив в строку, разделяя элементы разделителем.
!{array| path: localVar.myArrayList; type: join; separator: @; }
В этом примере мы использовали в качестве разделителя символ @, значит на выходе мы получим вот такую строку:
test@123@abc
Если вы хотите использовать в качестве разделителя пробел, или переход строки, воспользуйтесь спец символами.
type: at
Возвращает элемент массив по указанному номеру. Например вы хотите получить из массива элемент с номером 1
:
!{array| path: localVar.myArrayList; type: at; index: 1; }
Макрос вернет значение 123
. Не забывайте что нумерация в массиве начинается не с 1
а с 0
.