js数组对象去重

var arr = [
        { name: "zhang", age: "1" },
        { name: "zhang", age: "2" },
        { name: "li", age: "3" },
        { name: "li", age: "3" },
        { name: "wu", age: "5" },
        { name: "song", age: "6" },
        { name: "zhao", age: "3" },
        { name: "han", age: "2" },
        { name: "wu", age: "5" },
      ];

//第一种使用reduce去重
let obj = {};
   arr = arr.reduce((acc, cur) => {
    obj[cur.age] ? "" : (obj[cur.age] = true && acc.push(cur));
      return acc;
    }, []);
  console.log(arr);
//第二种filter过滤去重
  unique(arr){
    const res = new Map();
      return arr.filter(
        (arr) => !res.has(arr.age) && res.set(arr.age, 1)
      );
   };

 let Arr = unique(arr);
 console.log(Arr, "Arr");
//第三种把名称和年龄全部一样的去重,有一样不重复就不去重
let obj = {}; 
  arr = arr.reduce((acc, cur) => {
    obj[cur.age && cur.name] ? "" : (obj[cur.age && cur.name] = true && acc.push(cur));
       return acc;
    }, []);
  console.log(arr,'arr')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值