function obj2key(obj, keys){
let n = keys.length
let key = []
while(n-=1){
key.push(obj[keys[n]]);
}
return key.join('|');
}
//去重操作
export function uniqeByKeys(array,keys){
let arr = [];
let hash = {};
for (let i = 0, j = array.length; i < j; i+=1) {
let k = obj2key(array[i], keys);
if (!(k in hash)) {
hash[k] = true;
arr .push(array[i]);
}
}
return arr ;
}
let array = [
{a:1,b:2,c:3,d:4},
{a:11,b:22,c:333,d:44},
{a:111,b:222,c:333,d:444},
{a:11,b:22,c:33,d:44},
{a:11,b:22,c:33,d:444}
];
let arr = uniqeByKeys(array,['a','b']); //按key 为a,b 重复时过滤
数组去重,并且数组的每一项是对象object
最新推荐文章于 2023-03-20 21:57:34 发布
本文介绍了一个JavaScript函数,通过键值对的方式实现数组中对象的去重,重点讲解了`uniqeByKeys`函数,它根据指定的键['a', 'b']来判断对象是否重复。使用示例展示了如何按这些键过滤掉数组中的重复项。
2592

被折叠的 条评论
为什么被折叠?



