数组去重、new Set去重、for循环去重、indexOf去重、filter去重

第一种:new Set去重,new Set是ES6新推出的一种方法。

var arr=[1,1,2,2,3,3]
let arr1=Array.from(new Set(arr))
console.log(arr1)  //[1,2,3]

第二种:双重for循环去重,可以说是最古老的去重方法了,还没有Set,没有map,filter的时候,双重for循环几乎是去重的唯一方式。

复制代码
var arr=[1,1,2,2,3,3]
for(var i=0;i<arr.length;i++){
    for(var j=i+1;j<arr.length;j++){
        if(arr[i]==arr[j]){
             arr.splice(j,1)
             j--;
        }
    }
}
console.log(arr)   //[1,2,3]
复制代码

第三种:indexOf去重。

var arr=[1,1,2,2,3,3]
var arr2=[]
for(var i=0;i<arr.length;i++){
    if(arr2.indexOf(arr[i])==-1){
         arr2.push(arr[i]);
    }
}
console.log(arr2) //[1,2,3]

第四种:sort去重

var arr=[1,1,2,2,3,3]
var arr6=arr.sort((a,b)=>{return a-b;})
console.log(arr6)   //[1,2,3]

第五种:使用filter配合indexOf进行的去重。

 var arr=[1,1,2,2,3,3]
  const handleRemoveRepeat = (arr) =>arr.filter((item,index) => arr.indexOf(item,0) === index);
   var arr1=handleRemoveRepeat(arr)
   console.log(arr1) //[1,2,3]
posted @   eternityQSL  阅读(212)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示