.intersection()

Метод для сравнения двух коллекций, который возвращает коллекцию общих элементов.

Время чтения: меньше 5 мин

Кратко

Скопировано

Метод intersection() сравнивает текущую коллекцию с другой и возвращает новую, состоящую из элементов, входящих в обе коллекции.

В математике это называется пересечением двух множеств. Пересечение множеств A и B — это множество, которое состоит из элементов, входящих как в множество А, так и во множество B. Это можно выразить формулой:

A ∩ B = { x | x ∈ A ∧ x ∈ B }
Пересечение двух множеств

Пример

Скопировано

Допустим, у нас есть две коллекции чисел. Необходимо сравнить эти коллекции и получить общие, встречающиеся в обеих коллекциях, числа:

        
          
          const num1 = new Set([42, 4, 69, 37, 2])const num2 = new Set([1, 2, 3, 4])const inter = num1.intersection(num2)console.log(inter)// Set(2) { 2, 4 }
          const num1 = new Set([42, 4, 69, 37, 2])
const num2 = new Set([1, 2, 3, 4])

const inter = num1.intersection(num2)

console.log(inter)
// Set(2) { 2, 4 }

        
        
          
        
      

Как пишется

Скопировано

Метод intersection() принимает один обязательный аргумент — объект, содержащий коллекцию для вычисления пересечения. Если аргумент не указан, будет брошено исключение TypeError.

Аргументом может быть как Set-объект, так и Set-подобный объект, например, Map.

Метод intersection() возвращает новый Set-объект, содержащий пересечение исходной и указанной коллекций. Итерация при сравнении элементов проводится по коллекции меньшего размера. Порядок элементов будет соответствовать порядку элементов в коллекции меньшего размера. Если у коллекций нет общих элементов, метод вернёт пустой Set-объект.

Как понять

Скопировано

Метод intersection() позволяет получить общие элементы для двух коллекций без дополнительного кода обхода и сравнения.

Поддержка метода intersection() в основных браузерах и в Node.js появилась в 2024 году. Попытка использовать intersection() в более ранних версиях, приведёт к ошибке.

Поддержка в браузерах:
  • Chrome 122, поддерживается
  • Edge 122, поддерживается
  • Firefox 127, поддерживается
  • Safari 17, поддерживается
О Baseline