// 对普通数组去重
// 要求返回的是 去重之后的新数组 ,不影响原数组
let arr = [1, 1, 2, 3, 4, 5, 5, 6];
/**
* 方法一:通过includes方法,判断是否已经存在
* 方法二:通过自己创建cache,判断是否已经存在
*/
// 方法一:通过includes方法,判断是否已经存在
function unique(arr){
return arr.reduce((acc, curr) => {
if(acc.includes(curr)){
return acc;
}
return [...acc, curr];
}, []);
}
// 方法二:通过自己创建cache,判断是否已经存在
function unique(arr){
const cache = {};
return arr.reduce((acc, curr) => {
if(cache[curr]){
return acc;
}
else{
cache[curr] = true;
return [...acc, curr];
}
}, []);
}
// 对对象数组去重
let arr2 = [
{id: 1},
{id: 1},
{id: 2},
{id: 3},
{id: 4},
{id: 5},
];
function unique(arr){
return arr.reduce((acc, item) => {
if(!acc.cache[item.id]){
acc.result.push(item);
acc.cache[item.id] = true;
}
return acc;
}, {
result: [],
cache: {}
}).result;
}
数组去重复
最新推荐文章于 2024-07-18 10:24:18 发布