ДокументацияОператоры маппера2. Трансформеры списков и массивов (List & array)

Трансформеры списков и массивов (List & array)

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

append

Вид: трансформер · Обработка значения: array

Добавляет элемент в конец массива. Скалярный вход становится массивом из двух элементов.

Аргумент Тип Обязателен По умолчанию
item json да

Пример. ["a"] с item="b"["a", "b"]

first

Вид: трансформер · Обработка значения: array

Возвращает первый элемент массива.

Крайние случаи. Пустой массив не даёт значения; не-массив проходит насквозь.

Пример. [1, 2, 3]1

firstN

Вид: трансформер · Обработка значения: array

Берёт первые N элементов.

Аргумент Тип Обязателен По умолчанию
count number да 1

Пример. [1, 2, 3] с count=2[1, 2]

last

Вид: трансформер · Обработка значения: array

Возвращает последний элемент массива.

Пример. [1, 2, 3]3

lastN

Вид: трансформер · Обработка значения: array

Берёт последние N элементов.

Аргумент Тип Обязателен По умолчанию
count number да 1

Пример. [1, 2, 3, 4] с count=2[3, 4]

flatten

Вид: трансформер · Обработка значения: array

Уплощает вложенные массивы на один уровень.

Пример. [[1, [2]], 3][1, [2], 3]

flattenDeep

Вид: трансформер · Обработка значения: array

Рекурсивно уплощает вложенные массивы до одного уровня.

Пример. [1, [2, [3]]][1, 2, 3]

compact

Вид: трансформер · Обработка значения: array · Синоним: mapper_compact

Удаляет пустые элементы — null, undefined, "" и пустые массивы — из массива. false и 0 сохраняются (они не пусты).

Пример. [null, "", "a", false, 0, []]["a", false, 0]

Существует одноимённая версия-фильтр; см. compact (filter).

chunk

Вид: трансформер · Обработка значения: array

Разбивает массив на куски заданного размера (минимум 1).

Аргумент Тип Обязателен По умолчанию
size number да 1

Пример. [1, 2, 3] с size=2[[1, 2], [3]]

sort

Вид: трансформер · Обработка значения: array

Сортирует элементы массива как строки (с учётом локали, по умолчанию по возрастанию).

Аргумент Тип Обязателен По умолчанию
descending boolean нет false

Пример. ["banana", "apple", "cherry"]["apple", "banana", "cherry"]

splice

Вид: трансформер · Обработка значения: array

Удаляет и/или вставляет элементы в позиции (неизменяемая копия).

Аргумент Тип Обязателен По умолчанию
start number да 0
deleteCount number нет 0
items json нет нет

Пример. [1, 2, 3, 4] с start=1, deleteCount=2[1, 4]

unique

Вид: трансформер · Обработка значения: array · Синоним: uniq

Оставляет только уникальные элементы, используя глубокое (структурное) равенство. Значения, различающиеся по типу, считаются разными ("1" и 1 — не дубликаты).

Пример. ["1", 1, "1"]["1", 1]

Существует одноимённая версия-фильтр; см. unique (filter).

union

Вид: трансформер · Обработка значения: array

Объединение с другим массивом с устранением дубликатов по строковому ключу.

Аргумент Тип Обязателен По умолчанию
other json (array) да

Крайние случаи. Если other — не массив, вход проходит насквозь.

Пример. [1, 2] с other=[2, 3][1, 2, 3]

intersection

Вид: трансформер · Обработка значения: array

Оставляет элементы, которые также присутствуют в другом массиве (сравнение по строковому ключу).

Аргумент Тип Обязателен По умолчанию
other json (array) да

Пример. [1, 2, 3] с other=[2, 3, 4][2, 3]

difference

Вид: трансформер · Обработка значения: array

Оставляет элементы, которых нет в другом массиве.

Аргумент Тип Обязателен По умолчанию
other json (array) да

Пример. [1, 2, 3] с other=[2][1, 3]

zip

Вид: трансформер · Обработка значения: array

Спаривает элементы с другим массивом позиция к позиции; более короткая сторона дополняется null.

Аргумент Тип Обязателен По умолчанию
other json (array) да

Пример. [1, 2] с other=["a", "b"][[1, "a"], [2, "b"]]

unzip

Вид: трансформер · Обработка значения: array

Транспонирует массив пар обратно в массивы по позициям.

Пример. [[1, "a"], [2, "b"]][[1, 2], ["a", "b"]]

count

Вид: трансформер · Обработка значения: whole-value

Длина массива или строки; 0 для всего остального. Результат — число.

Пример. [1, 2, 3]3 · "abc"3

countBy

Вид: трансформер · Обработка значения: array

Считает элементы массива, сгруппированные по полю объекта. Возвращает запись со счётчиками.

Аргумент Тип Обязателен По умолчанию
field string да

Пример. [{"sev":"hi"},{"sev":"lo"},{"sev":"hi"}] с field="sev"{"hi": 2, "lo": 1}

groupBy

Вид: трансформер · Обработка значения: array

Группирует элементы массива в запись с ключом по полю объекта.

Аргумент Тип Обязателен По умолчанию
field string да

Пример. [{"sev":"hi"},{"sev":"lo"},{"sev":"hi"}] с field="sev"{"hi": [{"sev":"hi"},{"sev":"hi"}], "lo": [{"sev":"lo"}]}

indexBy

Вид: трансформер · Обработка значения: array

Индексирует элементы массива в запись с ключом по полю объекта (побеждает последняя запись).

Аргумент Тип Обязателен По умолчанию
field string да

Пример. [{"id":"a","n":1},{"id":"b","n":2}] с field="id"{"a": {"id":"a","n":1}, "b": {"id":"b","n":2}}

index

Вид: трансформер · Обработка значения: array

Возвращает элемент в позиции.

Аргумент Тип Обязателен По умолчанию
position number да 0

Пример. [1, 2, 3] с position=12

pluck

Вид: трансформер · Обработка значения: array

Извлекает одно поле объекта из каждого элемента массива (отсутствующее поле → null).

Аргумент Тип Обязателен По умолчанию
field string да

Пример. [{"name":"h1"},{"name":"h2"}] с field="name"["h1", "h2"]

size

Вид: трансформер · Обработка значения: whole-value

Длина массива/строки или количество ключей объекта; иначе 0.

Пример. {"a":1,"b":2}2 · [1,2,3]3

sum

Вид: трансформер · Обработка значения: array

Суммирует числовые элементы массива (каждый элемент приводится к числу). Скаляр приводится к числу напрямую.

Пример. [1, "2", 3]6

average

Вид: трансформер · Обработка значения: array

Среднее числовых элементов массива. Пустой вход или не-массив возвращает 0.

Пример. [2, 4, 6]4

max

Вид: трансформер · Обработка значения: array

Максимум числовых элементов массива; для скаляра — max(value, operand).

Аргумент Тип Обязателен По умолчанию
operand number нет 0

Пример. [1, 5, 2]5 · 3 с operand=77

min

Вид: трансформер · Обработка значения: array

Минимум числовых элементов массива; для скаляра — min(value, operand).

Аргумент Тип Обязателен По умолчанию
operand number нет 0

Пример. [3, 1, 2]1