美文网首页
javascript数组去重的4种实用方法

javascript数组去重的4种实用方法

作者: 诺克斯1 | 来源:发表于2019-07-27 13:50 被阅读0次

1.冒泡法

1.1 先对数组排序arr
1.2 声明新数组存储去重后的数组newArr
1.3 遍历arr,检查每一个元素与相邻的元素是否相等。相等,说明重复。 不等,没有重复就添加

 //1.1 先对数组排序arr
        for(var i = 0;i<arr.length-1;i++){
            for(var j = 0;j<arr.length-1-i;j++){
                if(arr[j] > arr[j+1]){
                    var temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
//1.2 声明新数组存储去重后的数组newArr
        var newArr = [];
        //1.3 遍历arr,检查每一个元素与相邻的元素是否相等。相等,说明重复。 不等,没有重复就添加
        for(var i = 0;i<arr.length;i++){
            if(arr[i] != arr[i+1]){
                newArr[newArr.length] = arr[i];
            }
        };
        console.log(newArr);

2.开关思想

1.声明newArr存储去重后的数组
2.遍历arr,检查arr[i]在不在
3.根据结果: 在:不添加 不在:添加

//1.声明newArr存储去重后的数组
          var newArr = [];
        // 遍历arr,检查arr[i]在不在
        for(var i = 0;i<arr.length;i++){
         var buZai = true;
        //  b. 验证假设
        //  c. 根据开关结果实现需求 
       
          for(var j = 0;j < newArr.length;j++){
              if(arr[i] == newArr[j]){
                  buZai = false;
              }
          };
          if(buZai){
              //没有重复
              newArr[newArr.length] = arr[i];
          }
      };

3.indexOf方法

如果indexof检查的结果为-1,说明不在新的数组中

  var arr = [20,66,88,99,100,55,66,88,20];
        //声明空数组存储去重后的数组
        var newArr = [];
        //遍历arr,检查在不在newArr中
        for(var i = 0;i<arr.length;i++){
            if(newArr.indexOf(arr[i]) == -1){//不在
                newArr.push(arr[i]);
            };
        };
        console.log(newArr);

4.对象法

//4.1 声明空数组存储去重后的数组   声明空对象用于检查元素是否重复
        var newArr = [];
        var obj = {};
        //4.2 遍历arr
        for(var i = 0;i<arr.length;i++){
            //如果这个对象以前没有个属性名(元素),没有重复。 有则重复
            if(obj[arr[i]] == undefined){//没有重复
                newArr.push(arr[i]);//对这个属性随意赋值,下一次是相同属性就不会取出undefined
               obj[arr[i]] = 1;
            };
        };
        console.log(newArr);

相关文章

网友评论

      本文标题:javascript数组去重的4种实用方法

      本文链接:https://www.haomeiwen.com/subject/vgterctx.html