JavaScript数组去重的方法

//1.遍历数组,发现相等的就删除
//用来保存新数组
 var arr0 = [];
 for (var i in arr) {
     //如果新数组中没有出现就保存到新数组
     if (arr0.indexOf(arr[i]) == -1) {
         arr0.push(arr[i]);
     }
 }
 console.log(arr0);

//2.遍历数组进行比较
 for (var i = 0; i < arr.length; i++) {
     for (var j = i + 1; j < arr.length; j++) {
         //如果发现相等,删除j
         if (arr[i] == arr[j]) {
             //删除j
             arr.splice(j, 1);
             //删除j后数组长度减少1,需要j--
             //否则每删除一个,就会跳过后面的比较
             j--;
         }
     }
 }
 console.log(arr);

 //3.利用set去重,最后把set转换为数组
 let singlArr = (arr) =>  {            
     let s = new Set();          
     arr.forEach(item => {               
         s.add(item);          
     });                     
     return Array.from(s);        
 };
 let arr0 = singlArr(arr);        
 console.log(arr0);

 //4.利用set数据类型去重,然后利用...打散set放到数组[]中
 let arr0 = [...new Set(arr)];
 console.log(arr0);

补充一个数组去除空对象的方法

例如:arr=[{a:1,b:2},{},{},{},{c:4}]
去除arr中的空对象{}后 arr=[{a:1,b:2},{c:4}]

let newArr = arr.filter(item => Object.keys(item).length !== 0);
console.log(newArr);//[{a:1,b:2},{c:4}]

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值