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

    方法1 filter和indexOf(能区分数字1和字符串‘1’):

    function unique(arr){
      return arr.filter((item,index,array) => {
        return array.indexOf(item) >= index
      })
    }

    方法2 循环加splice(能区分数字1和字符串'1',可改造用于对象比较):

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

    方法3 hash检测类型(能区分数字1和字符串‘1’)

    function unique(arr){
      var hash = {},res = [];
      var item,key;
      for(var i=0,len=arr.length;i<len;i++){
        item = arr[i];
        key = typeof(item) + item;
        if(!hash[key]){
          hash[key] = true;
          res.push(item);
        }
      }
      return res;
    }

    方法4 hash覆盖(不能区分数字1和字符串‘1’)

    function unique(arr){
      var hash = {};
      for(var i=0,len=arr.length;i<len;i++){
        hash[arr[i]] = arr[i];
      }
      return Object.keys(hash);
    }

  • 相关阅读:
    如何制作静、动态库
    各种时间函数的恩与怨
    一文看懂Vim操作
    如何避免内存泄漏
    和leon一起学Vim
    shell的输入输出重定向
    和Leon一起从头学Git(六)
    和leon一起从头学Git(五)
    深入理解Linux高端内存
    和Leon一起从头学Git(四)
  • 原文地址:https://www.cnblogs.com/mengff/p/6838884.html
Copyright © 2011-2022 走看看