// 使用四种方视实现数组去重
// 实际开发中,经常有去除数组中重复项的需求,
// 例如下列数组: const arr = [1, 1, ‘1’, 17, true, true, false, false, ‘true’, ‘a’, {}, {}]; 在去除重复项后为: [1, ‘1’, 17, true, false, ‘true’, ‘a’, {}, {}]。 请实现数组去重的需求。
// 方法1 Set()
const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}];
const s = new Set(arr);
console.log([...s]);
//方法2 Map()
const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}];
const m = new Map();
const arr1 = [];
for (let i = 0; i < arr.length; i++) {
m.set(arr[i], 'key');
}
console.log(m);
m.forEach((value, key) => {
arr1.push(key);
});
console.log(arr1);
// 方法3 遍历数组
const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}];
let newArr = [];
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
console.log(newArr);
// 方法4 reduce()
// 三目运算
var arr1 = [3,4,4,5,5,1,1,4,7,8,9,9];
arr1 = arr1.reduce((item,next)=>{
item.indexOf(next)>-1?'':item.push(next)
return item
},[]);
console.log(arr1);
// if循环
const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}];
let result = arr.reduce((before, after) => {
// 判断数组中是否存在当前元素,不存在则push进去
if (before.indexOf(after) == -1) {
before.push(after);
}
return before;
}, []);
console.log(result);
如何实现数组去重?简单总结4种实用方法,适合新手小白
最新推荐文章于 2024-06-12 10:01:17 发布