Преобразование cross

Преобразование cross вычисляет декартово произведение потока данных с самим собой.

Параметры преобразования

Свойство Тип Описание
filter Expr Необязательное выражение фильтра, ограничивающее элементы декартова произведения.
as Array Имена выходных полей для двух объектов каждой пары (по умолчанию ["a", "b"]).

Использование

Для входных данных [{v:1}, {v:2}, {v:3}] описание преобразования:

{"type": "cross"}

создаёт результат:

[
  {"a": {"v": 1}, "b": {"v": 1}},
  {"a": {"v": 1}, "b": {"v": 2}},
  {"a": {"v": 1}, "b": {"v": 3}},
  {"a": {"v": 2}, "b": {"v": 1}},
  {"a": {"v": 2}, "b": {"v": 2}},
  {"a": {"v": 2}, "b": {"v": 3}},
  {"a": {"v": 3}, "b": {"v": 1}},
  {"a": {"v": 3}, "b": {"v": 2}},
  {"a": {"v": 3}, "b": {"v": 3}}
]

При тех же входных данных преобразование с фильтром:

{"type": "cross", "filter": "datum.a !== datum.b"}

создаёт результат:

[
  {"a": {"v": 1}, "b": {"v": 2}},
  {"a": {"v": 1}, "b": {"v": 3}},
  {"a": {"v": 2}, "b": {"v": 1}},
  {"a": {"v": 2}, "b": {"v": 3}},
  {"a": {"v": 3}, "b": {"v": 1}},
  {"a": {"v": 3}, "b": {"v": 2}}
]