IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    答案是丰富多彩的系列6:数组去重

    zongyan86发表于 2017-05-23 06:42:00
    love 0

    第一种:indexOf方法

     function unique(arr){
        var tmpArr = [];
        for(var i=0; i<arr.length; i++){
          if(tmpArr.indexOf(arr[i]) == -1){   // ==i也是一种方案
            tmpArr.push(arr[i]);
          }
        }
        return tmpArr;
      }

    第二种:hash

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

    还是跟第一种有区别的。

    第三种:排序

    function unique(array){ 
    array.sort(); 
    var re=[array[0]]; 
    for(var i = 1; i < array.length; i++){ 
    if( array[i] !== re[re.length-1]){ 
      re.push(array[i]); 
     } 
     } 
     return re; 
    } 

    第四种:ES5+ES6

    function unique(arr){
    var obj = {};
    arr.forEach(function(item,index) {
        obj[item] = 1
    })  
    return Object.keys(obj);
    }

    第五种:ES6

    Array.from(new Set([2,3,3,4,5]))

    第六种:ES6

    [...new Set([2,3,3,4,5])]

    声明: 本文采用 BY-NC-SA 协议进行授权 | WEB开发分享
    转载请注明转自《答案是丰富多彩的系列6:数组去重》



沪ICP备19023445号-2号
友情链接