Javascript 数组中的对象如何去重

/**
 * 数组对象去重
 * @param arr 需要去重的数组
 * @param property 根据哪个属性去重
 */
function arrRemove(arr, property){
  let hash = {}
  let arrData = arr.reduce((arrNow, cut) => {
    hash[typeof cut[property] + cut[property]]
      ? ''
      : (hash[typeof cut[property] + cut[property]] = true && arrNow.push(cut))
    return arrNow
  }, [])
  return arrData
}

let arr = [
	       {id:0},{id:1},{id:undefined},{id:null},{id:true},{id:'true'}
		  ,{id:0},{id:1},{id:undefined},{id:null},{id:true},{id:'true'}
		  ,{id:NaN},{id:'NaN'},{id:'1'},{id:{}},{id:false},{id:'false'},{id:'0'}
          ,{id:NaN},{id:'NaN'},{id:'1'},{id:{}},{id:false},{id:'false'},{id:'0'}
          ];

console.log(arrRemove(arr, 'id'));
//打印输出
/*
	0: {id: 0}
	1: {id: 1}
	2: {id: undefined}
	3: {id: null}
	4: {id: true}
	5: {id: 'true'}
	6: {id: NaN}
	7: {id: 'NaN'}
	8: {id: '1'}
	9: {id: {}}
	10: {id: false}
	11: {id: 'false'}
	12: {id: '0'}
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值