// 1.使用Set:将数组转换为Set对象,Set对象会自动去除重复元素,之后再将Set对象转换为数组。
const arr1 = [1, 2, 3, 4, 2, 3, 5];
const uniqueArr1 = Array.from(new Set(arr1));
console.log(uniqueArr1); // [1, 2, 3, 4, 5]
// 2.使用filter()方法:通过filter()方法遍历数组,返回仅包含首次出现的元素的新数组。
const arr2 = [1, 2, 3, 4, 2, 3, 5];
const uniqueArr2 = arr2.filter((item, index) => arr2.indexOf(item) === index);
console.log(uniqueArr2); // [1, 2, 3, 4, 5]
// 3.使用reduce()方法:通过reduce()方法遍历数组,将元素存储在一个临时对象中,每次遇到重复元素时将其跳过,最后返回所有不重复元素的数组。
const arr4 = [1, 2, 3, 4, 2, 3, 5];
const uniqueArr4 = arr4.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(uniqueArr4); // [1, 2, 3, 4, 5]
// 4.使用Map:通过Map对象可以将数组元素作为键,通过Map的键唯一性特性去重,然后再将Map对象转换为数组。
const arr3 = [1, 2, 3, 4, 2, 3, 5];
const uniqueArr3 = [...new Map(arr3.map(item => [item, item])).values()];
console.log(uniqueArr3); // [1, 2, 3, 4, 5]
JS数组去重的四种方法
于 2024-05-09 10:33:55 首次发布