对于元素是非基本类型的数组去重

138 阅读1分钟

也可指定按元素中某个属性如id进行去重复

   isRepeat( ){
      let arr=[{id:1,name:'s'},{id:2,name:'s1'},{id:1,name:'s3'}];
      let obj={};
      arr.forEach(item => {
         obj[item.id]=item;
      })
      let s=Object.keys(obj).map(item => {
         return obj[item];
      })
      console.log(s); 
 },

     isRepeat (){
       let arr=[{id:1,name:'s'},{id:2,name:'s1'},{id:1,name:'s3'}];
       let obj={};
       arr.forEach(item => {
          obj[JSON.stringify(item)]=item;
       })
       let s=Object.keys(obj).map(item => {
          return obj[item];
       })
       console.log(s); 
 },

     isRepeat(){
      let arr=[{id:1,name:'s'},{id:2,name:'s1'},{id:1,name:'s3'}];
      let hash={};
      arr=arr.reduce((item,next) => {
         hash[next.id]? '' : hash[next.id] =true && item.push(next);
          return item;
      },[]);
    console.log(arr);
 }