js中的数组去重

本文主要提供了三个数组去重的方法

  • 方法一,splice()
 var arr=[1,2,3,8,9,2,4,2,5,6,3,2,];
    for(var i=0;i<arr.length;i++){
      var item=arr[i];
      for(var j=i+1;j<arr.length;j++){//内层循环用来判断item后面的数与item是否相等
        if(item===arr[j]){
          arr.splice(j,1)//相等就把j位删了
          j--;//j--是因为上面删除了一个元素,所以数组的长度减少了,j--后还有j++,运算完成后才是下一个遍历的元素的下标
        }
      }
    }
    console.log(arr);
  • 方法二
 var arr=[1,2,3,8,9,2,4,2,5,6,3,2,];
    var arr1=[];//新建一个数组用来存放无重复的元素
    for(var i=0;i<arr.length;i++){
      var item=arr[i];
      var bool=true;//设置bool值
      for(var j=0;j<arr1.length;j++){//遍历新数组
        if(arr1[j]===item){//如果新数组里面的元素与item相等,那么设置bool为false,并跳出此次遍历,判断下一个item值与arr1[j]是否相等
          bool=false;
          break;
        }
      }
        //如果bool为true,那么上面就没有arr1[j]与item相等,就将item存入新的数组arr1中
      if(bool){
        arr1.push(item);
      }
    }
    console.log(arr1);
  • 方法三 indexOf()
   var arr=[1,3,1,2,3,5,2,3,4,6];
    var arr1=[];
    for(var i=0;i<arr.length;i++){
      if(arr1.indexOf(arr[i])===-1){
        arr1.push(arr[i]);
      }
    }

 

  

posted @ 2020-07-02 10:10  she_will  阅读(222)  评论(0编辑  收藏  举报