Одной из часто возникающих задач при работе с массивами в JavaScript является удаление дубликатов из массива. Проще говоря, нужно получить новый массив, который будет содержать только уникальные элементы исходного массива.
Допустим, есть массив чисел:
let numbers = [1, 2, 3, 2, 1, 4, 5, 4, 6];
В этом массиве числа 1, 2 и 4 встречаются дважды. Необходимо получить новый массив, в котором каждое число будет встречаться только один раз.
Использование Set
Один из современных и эффективных способов решения этой задачи – использование объекта Set. Этот объект позволяет создавать коллекции уникальных значений. Для того чтобы получить массив без дубликатов, достаточно преобразовать исходный массив в Set, а затем обратно в массив:
let uniqueNumbers = [...new Set(numbers)];
В результате переменная uniqueNumbers будет содержать массив [1, 2, 3, 4, 5, 6].
Использование метода filter
Если по каким-либо причинам использование Set недоступно или нежелательно, можно воспользоваться методом filter, который есть у каждого массива. Этот метод позволяет отфильтровать элементы массива по заданному условию. Для удаления дубликатов можно использовать следующий код:
let uniqueNumbers = numbers.filter((value, index, self) => { return self.indexOf(value) === index; });
В этом коде для каждого элемента массива вызывается функция, которая проверяет, совпадает ли индекс первого вхождения элемента в массив с его текущим индексом. Если индексы совпадают, значит, это первое вхождение элемента, и он добавляется в новый массив. Если индексы не совпадают, значит, это дубликат, и он отбрасывается.
Оба этих метода позволяют эффективно и быстро удалять дубликаты из массива в JavaScript.
Добавить комментарий