Удалить дублирующиеся значения из массива JavaScript: 7 способов

Удалить дублирующиеся значения из массива JavaScript: 7 способов

Введение

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

1. Использование Set

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

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = Array.from(new Set(array));
console.log(uniqueArray);
// Результат: [1, 2, 3, 4, 5]

2. Использование Filter и indexOf

Второй способ удаления дубликатов из массива в JavaScript состоит в использовании метода filter в сочетании с indexOf. Мы можем создать новый массив, фильтруя только уникальные значения:

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((value, index) => array.indexOf(value) === index);
console.log(uniqueArray);
// Результат: [1, 2, 3, 4, 5]

3. Использование Reduce

Третий способ, который мы рассмотрим, заключается в использовании метода reduce для создания нового массива, содержащего только уникальные значения:

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((accumulator, value) => {
  if (!accumulator.includes(value)) {
    accumulator.push(value);
  }
  return accumulator;
}, []);
console.log(uniqueArray);
// Результат: [1, 2, 3, 4, 5]

4. Использование ES6 Spread оператора

Четвертый способ удаления дубликатов из массива в JavaScript основан на использовании ES6 Spread оператора ... и Set:

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray);
// Результат: [1, 2, 3, 4, 5]

5. Использование Map

Пятый способ удаления дубликатов из массива в JavaScript заключается в использовании объекта Map. Мы будем использовать значения массива в качестве ключей объекта Map, а затем создадим новый массив из ключей:

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Map(array.map(value => [value, value])).keys()];
console.log(uniqueArray);
// Результат: [1, 2, 3, 4, 5]

6. Использование цикла и includes

Шестой способ удаления дубликатов из массива в JavaScript состоит в использовании цикла и метода includes. Мы будем создавать новый массив, проверяя, есть ли текущее значение в нём:

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [];
for (let value of array) {
  if (!uniqueArray.includes(value)) {
    uniqueArray.push(value);
  }
}
console.log(uniqueArray);
// Результат: [1, 2, 3, 4, 5]

7. Использование объекта и ключей

Последний способ удаления дубликатов из массива в JavaScript заключается в использовании объекта и его ключей. Мы создадим новый объект, используя значения массива в качестве ключей, а затем извлечем ключи объекта в новый массив:

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = Object.keys(array.reduce((accumulator, value) => {
  accumulator[value] = true;
  return accumulator;
}, {}));
console.log(uniqueArray);
// Результат: [1, 2, 3, 4, 5]

Заключение

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

Читайте так же  Как вернуть значение из асинхронной callback функции в JavaScript?