Разработка
Евгений Component17
8294

JavaScript-массивы: пересечение, разность и объединение в ES6

Шпаргалка для работы с массивами в JavaScript ES6+.

В закладки
seapp88

Пересечение даст нам элементы, которые объединяют оба массива, в этом случае результат должен быть [1,5].

let intersection = arrA.filter(x => arrB.includes(x));

Разность будет выводить элементы из массива A, которых нет в массиве B. Результат будет [3,4].

let difference = arrA.filter(x => !arrB.includes(x));

В этом случае вы получите массив, содержащий все элементы arrA, которых нет в arrB, и наоборот, так что результат должен быть [2,3,4,6,7].

let difference = arrA.filter(x => !arrB.includes(x)).concat(arrB.filter(x => !arrA.includes(x)));
seapp88

Объединение должно быть самым простым из них всех, в конце концов, результатом должны быть все элементы из A, все из B или оба, как это [1,2,3,4,5,6,7].

let union = [...arrA, ...arrB];

Но есть проблема в том, что мы получим дублированные элементы, так что теоретически это не объединение. Для этого мы можем использовать new Set():

let union = [...new Set([...arrA, ...arrB)];
{ "author_name": "Евгений Component17", "author_type": "self", "tags": [], "comments": 9, "likes": 14, "favorites": 47, "is_advertisement": false, "subsite_label": "dev", "id": 89555, "is_wide": true, "is_ugc": true, "date": "Thu, 24 Oct 2019 18:22:40 +0300", "is_special": false }
Объявление на vc.ru Отключить рекламу
Трибуна
MakeTime — повысить продуктивность, установив плагин в браузер
Вы установили плагин в Google Chrome и ваша продуктивность выросла, такое возможно? Давайте разберемся.
0
9 комментариев
Популярные
По порядку
Написать комментарий...
1

Отличная шпора! Спасибо!

Ответить
1

Спасибо за обратную связь)

Ответить
1

а как в примере с пересечениями вывести только уникальные значения? допустим если в одном из массивов 2 раза цифра "5" встречается но мне нужно лишь раз ёё вывести?

Ответить
0

Нашли ответ на этот вопрос? Тоже интересует

Ответить
0

Приветствую! Нет, не нашел, пришлось использовать два раза фильтр)

Ответить
0

А ведь если в исходных массивах есть повторяющиеся элементы, то Set недобрую службу сослужит..

Ответить
0

Например?

Ответить
0

В поледнем примере есть опечатка(
Должно быть так:
let union = [...new Set([...arrA, ...arrB])]; 

Ответить
0

только хотел написать, что да неверно, там будем массив1 + массив2

Ответить

Комментарии

null