JavaScript предоставляет различные способы работы с массивами, включая поиск уникальных значений и удаление дубликатов. В этой статье мы рассмотрим 10 методов, которые помогут вам получить все уникальные значения в массиве JavaScript.
1. Метод filter() и indexOf()
Метод filter()
позволяет создать новый массив, содержащий только уникальные значения. Мы можем использовать метод indexOf()
внутри filter()
, чтобы проверить, есть ли элемент в массиве ранее.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = array.filter((value, index) => array.indexOf(value) === index);
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
2. Метод Set
Метод Set
– это новая структура данных в JavaScript, которая позволяет хранить только уникальные значения. Мы можем преобразовать массив в Set
и затем обратно в массив, чтобы получить только уникальные значения.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
3. Метод reduce() и includes()
Метод reduce()
позволяет преобразовать массив в одно значение. Мы можем использовать метод includes()
внутри reduce()
, чтобы проверить, есть ли элемент в результирующем массиве.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = array.reduce((accumulator, value) => {
if (!accumulator.includes(value)) {
accumulator.push(value);
}
return accumulator;
}, []);
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
4. Метод forEach() и объект
Метод forEach()
позволяет выполнить функцию для каждого элемента массива. Мы можем использовать объект для отслеживания уникальных значений и создания нового массива.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = [];
const uniqueObject = {};
array.forEach(value => {
if (!uniqueObject[value]) {
uniqueObject[value] = true;
uniqueArray.push(value);
}
});
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
5. Метод filter() и includes()
Метод filter()
может быть использован с методом includes()
для фильтрации уникальных значений из массива.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = array.filter((value, index, self) => self.indexOf(value) === index);
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
6. Метод reduce() и объект
Метод reduce()
может быть использован с объектом для создания нового массива с уникальными значениями.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = array.reduce((accumulator, value) => {
if (!accumulator[value]) {
accumulator[value] = true;
accumulator.push(value);
}
return accumulator;
}, []);
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
7. Метод map() и объект
Метод map()
позволяет создать новый массив, применяя функцию к каждому элементу исходного массива. Мы можем использовать объект для отслеживания уникальных значений.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = [];
const uniqueObject = {};
array.map(value => {
if (!uniqueObject[value]) {
uniqueObject[value] = true;
uniqueArray.push(value);
}
});
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
8. Метод filter() и Set
Метод filter()
может быть использован с методом has()
объекта Set
для фильтрации уникальных значений.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = array.filter((value, index, self) => self.indexOf(value) === index);
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
9. Метод map() и Set
Метод map()
может быть использован с методом has()
объекта Set
для создания нового массива с уникальными значениями.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = [];
const uniqueSet = new Set();
array.map(value => {
if (!uniqueSet.has(value)) {
uniqueSet.add(value);
uniqueArray.push(value);
}
});
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
10. Метод filter() и объект
Метод filter()
может быть использован с объектом для фильтрации уникальных значений.
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = array.filter((value, index, self) => self.indexOf(value) === index);
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
В этой статье мы рассмотрели 10 различных методов, которые помогут вам получить все уникальные значения в массиве JavaScript. Вы можете выбрать любой из этих методов в зависимости от ваших потребностей и предпочтений.