js中数组对象去重

复制代码
// 数组对象去重,按照某一个属性
const duplicateRemovalSimple=function(oldArr){
  let newArr=[];
  let obj={};
  oldArr.forEach(item=>{
    if(!obj[item.a]){
      newArr.push(item);
      obj[item.a]=true;
    }
  })
  return newArr
}

// 数组对象去重--对比每个属性
const duplicateRemoval=function(oldArr){
  // 数组对象去重,只适用于数组嵌套一层对象,如果下层还有嵌套关系时不适用,且内部对象的key需为字母
  // 此方法不单独对比数组内对象的某一项,而是对比对象的每一项,所有属性值都相等则视为重复
  // 对原数组进行处理,使原数组内每个对象的key值按顺序排列
  oldArr=oldArr.map(item=>{
    let copyItem={};
    let keys=Object.keys(item).sort((a,b)=>{
      // localeCompare为字母排序方法
      return a.localeCompare(b);
    });
    keys.forEach(forEachItem=>{
      copyItem[forEachItem]=item[forEachItem];
    })
    return item=copyItem;
  })
  // 对比去重
  let newArr=oldArr.map(item=>{
    return JSON.stringify(item);
  })
  newArr=[...new Set(newArr)].map(item=>{
    return JSON.parse(item);
  });
  return newArr;
}
export { debounce,throttle,duplicateRemoval,duplicateRemovalSimple };
复制代码

 

posted @   Alex-Song  阅读(726)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示