Манипуляции с массивами: удаление повторяющихся элементов в JavaScript

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

Метод 1: использование метода filter()
Метод filter() создает новый массив со всеми элементами, отвечающими определенному условию. В этом случае мы можем использовать его для фильтрации элементов, существующих в обоих массивах.

const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const result = array1.filter((element) => !array2.includes(element));
console.log(result); // Output: [1, 2]

Метод 2: использование метода indexOf()
Метод indexOf() возвращает первый индекс, по которому данный элемент может быть найден в массиве, или -1, если он отсутствует. Мы можем перебрать первый массив и проверить, существует ли каждый элемент во втором массиве, используя indexOf().

const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const result = array1.filter((element) => array2.indexOf(element) === -1);
console.log(result); // Output: [1, 2]

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

const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const set1 = new Set(array1);
const set2 = new Set(array2);
const result = [...set1].filter((element) => !set2.has(element));
console.log(result); // Output: [1, 2]

Метод 4: использование метода уменьшить()
Метод уменьшить() применяет функцию к каждому элементу массива, в результате чего получается одно выходное значение. Мы можем использовать его для создания нового массива, сравнивая элементы обоих массивов и исключая дубликаты.

const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const result = array1.reduce((accumulator, element) => {
  if (!array2.includes(element)) {
    accumulator.push(element);
  }
  return accumulator;
}, []);
console.log(result); // Output: [1, 2]

В этой статье мы рассмотрели различные методы удаления элементов из массива, имеющих то же значение, что и элементы в другом массиве. Используя методы filter(), indexOf(), Set object и уменьшить(), вы можете добиться желаемого результата. Выберите метод, который лучше всего соответствует вашим потребностям и стилю кодирования.

Помните, что поддержание чистоты и читаемости вашего кода имеет решающее значение для поддержки и улучшения ваших проектов. Приятного кодирования!