Трансформеры списков и массивов (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