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

    1、双层循环

    Array.prototype.dist = function(){
         var arr = this;
         var len = arr.length;  
         var result = [];    
         for(var i = 0;i<len;i++){
              for(var j = i+1 ; j< len;j++){
                if(arr[i] === arr[j]){
                    j = ++i;
               }
          result.push(arr[i]);
         }
      }
      return result;
    }

     2、利用splice直接操作原数组

    Array.prototype.dist = function(){
      var arr = this;
      var len = arr.length;
      for(var i=0;i<len;i++){
        for(var j=i+1; j<len;j++){
          if(arr[j] === arr[i]){
            arr.splice(j,1);
            j--;
            len--;
          }
        }
      }
      return arr; }

     3、数组递归去重,先进行排序,后比较

    Array.prototype.dist = function(){
      var arr = this;
      var len = arr.length;
      arr.sort(function(a,b){
        return a - b;
      });
      function arrloop(index){
        if(index > 1) {
          if(arr[index] === arr[index-1]){
            arr.splice(index,1);
          }
        }
        arrloop(index-1);

      }
      arrloop(len-1);
      return arr;
    }

     4、利用indexOf和forEach实现

    Array.prototype.dist = function(){
      var arr = this;
      var result = [];
      arr.forEach(function(element,index,arr){
        if(arr.indexOf(element,index+1) === -1){//从数组的下一个开始寻找
          result.push(element);
        }
      });
      return arr; }

     5、利用es6中的set,类似于数组,其成员都是唯一的

    Array.prototype.dist = function(){
      var arr = this;   return Array.from(new set(arr));//Array.from也是es6中的用法 }
  • 相关阅读:
    浏览器切换窗口事件
    icheck的使用
    datetimepicker —— 日期选择控件
    apktool
    生成证书
    Jadx
    js call、apply和bind
    1号台风来了
    Linux内核编译和测试
    华中科技大学电子地图
  • 原文地址:https://www.cnblogs.com/wuting/p/8796065.html
Copyright © 2011-2022 走看看