apps-script-utils (Русский) 2.1.1 Help

intersect

function intersect<T>(...arrays: T[][]): T[];

Порядок берётся из первого массива, а результат дедуплицируется: повторяющееся там значение попадёт в результат один раз. Значения сравниваются по правилу SameValueZero, которое использует Set, поэтому NaN пересекается с NaN — чего сравнение через === никогда не даёт, — а -0 совпадает с 0.

Массивы после первого один раз превращаются в множества, а первый проходится ровно один раз. Стоимость линейна по общему объёму входных данных, а не квадратична, как в написанной вручную версии. Исходные массивы не изменяются.

С одним массивом intersect возвращает его уникальные значения, без аргументов — [].

Параметры

Параметр

Тип

Описание

...arrays

T[][]

Массивы для пересечения. Не изменяются.

Возвращает

T[] — новый массив общих значений в порядке первого массива, без повторов.

Исключения

Исключение

Условие

TypeError

Один из аргументов не является массивом.

Примеры

Значения, общие для всех массивов

intersect([1, 2, 3], [2, 3, 4]); // => [2, 3] intersect([1, 2, 3], [2, 3], [3, 9]); // => [3] intersect([1, 2], [9]); // => []

Поиск строк, общих для двух листов

/** * Returns the identifiers that appear in both sheets, in the order of the * first one. */ export function findSharedIds( active: GoogleAppsScript.Spreadsheet.Sheet, billed: GoogleAppsScript.Spreadsheet.Sheet ): string[] { const left = active.getRange("A2:A").getValues().flat() as string[]; const right = billed.getRange("A2:A").getValues().flat() as string[]; return intersect(left, right); }
function findSharedIds(active, billed) { const left = active.getRange("A2:A").getValues().flat(); const right = billed.getRange("A2:A").getValues().flat(); return intersect(left, right); }

Дедупликация и крайние случаи

intersect([1, 1, 2], [1, 2]); // => [1, 2] — the result is deduplicated intersect([NaN], [NaN]); // => [NaN] intersect([1, 2]); // => [1, 2] — a single array, deduplicated intersect(); // => []

Смотрите также

Исходный код

src/lang/array/intersect.ts

23 September 2026

Эта документация сгенерирована нейросетью (Claude) на основе исходного кода библиотеки.