数组去重--数组的每一项是json对象object

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 重复时过滤

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值