Перейти к основному содержимому
Разделы документации
Документация›Операторы маппера›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=1 → 2

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=7 → 7

min

#

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

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

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

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