千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip
数组的去重
方法一:使用Set数据结构
可以利用Set数据结构的特性来实现数组的去重,Set中存储的值都是唯一的。
function uniqueBySet(arr) {
return [...new Set(arr)];
}
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueBySet(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法二:使用filter方法和indexOf方法
通过filter方法结合indexOf方法,可以筛选出数组中第一次出现的元素,从而实现数组的去重。
function uniqueByFilter(arr) {
return arr.filter((item, index) => arr.indexOf(item) === index);
}
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueByFilter(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法三:使用reduce方法和includes方法
通过reduce方法结合includes方法,可以迭代数组并将不重复的元素添加到结果数组中,从而实现数组的去重。
function uniqueByReduce(arr) {
return arr.reduce((result, item) => {
if (!result.includes(item)) {
result.push(item);
}
return result;
}, []);
}
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueByReduce(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法四:使用Map数据结构
可以利用Map数据结构的特性,其中的键值对可以保证键的唯一性,从而实现数组的去重。
function uniqueByMap(arr) {
const resultMap = new Map();
const uniqueArr = [];
for (const item of arr) {
if (!resultMap.has(item)) {
resultMap.set(item, true);
uniqueArr.push(item);
}
}
return uniqueArr;
}
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = uniqueByMap(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
以上就是几种常用的数组去重方法,根据具体需求选择合适的方法,可以方便地实现数组去重操作。

