zoukankan      html  css  js  c++  java
  • 数组去重的方法

    数组去重的两种方法:通过下标去重,通过对象属性的方法去重

    //下标的方法
        	function getArray(arr){
               var newArray=[];
               arr.forEach(function(item,index,arr){
               	if(newArray.indexOf(item)==-1){
                     newArray.push(item)
               	}
               })
               return newArray;
        	}
    
        	//对象属性的方法
        	function getArray2(arr){
               var newObject={};
               var newArray=[];
               arr.forEach(function(item,index,arr){
                  if(!newObject[item]){
                  	 newArray.push(item);
                     newObject[item]=1;
                  }else{
                  	newObject[item]++;
                  }
               })
               return newArray
               }
        	}
    

      还有去重的方式可以是:

          遍历去重:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中

          先排序后去重:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组

          ES6的set方法

    //遍历去重
    function unique(arr){
      var res = [arr[0]];
      for(var i=1;i<arr.length;i++){
        var repeat = false;
        for(var j=0;j<res.length;j++){
          if(arr[i] == res[j]){
            repeat = true;
            break;
          }
        }
    
        if(!repeat){
          res.push(arr[i]);
        }
      }
    
      return res;
    }
    
     //先排序,后去重
    function unique(arr){
      var arr2 = arr.sort();
      var res = [arr2[0]];
      for(var i=1;i<arr2.length;i++){
        if(arr2[i] !== res[res.length-1]){
          res.push(arr2[i]);
        }
      }
      return res;
    }
    
    //ES6中的set 用拓展运算符
    let unique=[...new Set(array)];

    //Es6中的set方法 用Array.from转换成数组
    function dedupe(array){
    return Array.from(new Set(array));
    }

      

          

  • 相关阅读:
    【设计模式】策略模式
    【设计模式】模板方法模式
    【C++】《Effective C++》第五章
    【C++】《Effective C++》第四章
    free命令详解(内存)
    top命令详解(动态进程)
    ps命令详解(静态进程)
    SpringBoot_集成Redis
    SpringBoot_热部署插件
    SpringBoot_实现RESTfull API
  • 原文地址:https://www.cnblogs.com/karila/p/8719817.html
Copyright © 2011-2022 走看看