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

时间:17-05-23 栏目:ES6[ES2015], Javascript 作者:zongyan86 评论:0 点击: 3,270 次

第一种: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;
  }

[1,2,3,"3"]

第二种: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;
  }

还是跟第一种有区别的。

[1,2,3]

第三种:排序

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; 
} 

[1,2,3,"3"]

第四种:ES5+ES6

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

["1","2","3"]

第五种:ES6

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

[1,2,3,"3"]

第六种:ES6

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

[1,2,3,"3"]



声明: 本文由( zongyan86 )原创编译,转载请保留链接: 答案是丰富多彩的系列6:数组去重

关注我们