Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
06 Июл 2023
2 мин
407

Получение разницы между двумя массивами в JavaScript

Иногда необходимо сравнить два массива и вывести элементы, которые присутствуют только в одном из них. Например, есть два массива: Цель — получить

Иногда необходимо сравнить два массива и вывести элементы, которые присутствуют только в одном из них. Например, есть два массива:

let array1 = ['яблоко', 'банан', 'апельсин'];
let array2 = ['банан', 'апельсин', 'киви', 'манго'];

Цель — получить массив, который будет содержать элементы ['яблоко', 'киви', 'манго'], так как именно эти элементы уникальны для каждого из массивов.

Вычисление разницы между массивами

В JavaScript нет встроенного метода для нахождения разницы между массивами, но это можно сделать, используя комбинацию нескольких методов.

Использование метода filter

Метод filter создает новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции.

let array1 = ['яблоко', 'банан', 'апельсин'];
let array2 = ['банан', 'апельсин', 'киви', 'манго'];

let difference = array1
  .filter(x => !array2.includes(x))
  .concat(array2.filter(x => !array1.includes(x)));

console.log(difference); // ["яблоко", "киви", "манго"]

В этом коде используется метод filter для создания нового массива из элементов, которые не включены в другой массив. Затем эти новые массивы объединяются с помощью метода concat.

Использование Set и метода filter

Если исходные массивы содержат большое количество элементов и требуется более производительное решение, можно использовать объект Set вместе с методом filter.

let array1 = ['яблоко', 'банан', 'апельсин'];
let array2 = ['банан', 'апельсин', 'киви', 'манго'];

let set = new Set(array2);
let difference = array1.filter(x => !set.has(x));

console.log(difference); // ["яблоко"]

Здесь создается Set из второго массива, что позволяет быстро проверять наличие элементов. Затем используется метод filter для создания нового массива из элементов первого массива, которые отсутствуют в Set.

Обратите внимание, что этот код найдет только элементы, которые присутствуют в первом массиве, но отсутствуют во втором. Чтобы найти уникальные элементы в обоих массивах, нужно выполнить операцию в обе стороны и объединить результаты.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий