下面我将详细讲解“JavaScript数组去重的五种方法”的完整攻略,包含以下五种去重方法:
1. 利用Set去重
const arr = [1, 2, 3, 3, 4, 4, 5];
const arrUnique = [...new Set(arr)];
console.log(arrUnique); // [1, 2, 3, 4, 5]
利用Set的特性,去重后可直接将Set对象转为数组。
2. 利用reduce函数去重
const arr = [1, 2, 3, 3, 4, 4, 5];
const arrUnique = arr.reduce((prev, cur) => {
if (!prev.includes(cur)) {
prev.push(cur);
}
return prev;
}, []);
console.log(arrUnique); // [1, 2, 3, 4, 5]
reduce函数可拥有一个初始值,遍历时将数组中的每个元素与初始值作比较,筛选出不重复的元素。
3. 利用filter函数去重
const arr = [1, 2, 3, 3, 4, 4, 5];
const arrUnique = arr.filter((val, index, arr) => arr.indexOf(val) === index);
console.log(arrUnique); // [1, 2, 3, 4, 5]
通过indexOf判断元素的位置与当前index是否一样,去除重复元素。
4. 利用Object键值对去重
const arr = [1, 2, 3, 3, 4, 4, 5];
const obj = {};
const arrUnique = [];
arr.forEach(item => {
if (!obj[item]) {
arrUnique.push(item);
obj[item] = 1;
}
});
console.log(arrUnique); // [1, 2, 3, 4, 5]
利用对象的键值特性,去重后用数组存储。
5. 利用Map去重
const arr = [1, 2, 3, 3, 4, 4, 5];
const map = new Map();
const arrUnique = [];
arr.forEach(item => {
if (!map.has(item)) {
map.set(item, true);
arrUnique.push(item);
}
});
console.log(arrUnique); // [1, 2, 3, 4, 5]
利用Map对象的key值特性,去重后用数组存储。
以上就是五种JS数组去重的方法,可以根据实际情况选择不同的方法来解决去重问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript数组去重的五种方法 - Python技术站