js的最快去重方法。

去重最快的方法是什么?用js实现。最好可以带理由。

var arr = [1,2,3,4,5,6,8,7,8,8,4,5,21,5,4,1,12,5,4,1,2,5];
var obj = {}
for(var i  in arr){
   obj[arr[i]] = true;
}
console.dir(obj);
//这是我能写出来的,遍历一次,出现结果。
阅读 11.3k
7 个回答
const arr = [1, 1, 2, 3, 4, 4, 5, 5]
console.info([...new Set(arr)])

// es5
const arr = [1, 1, 2, 3, 4, 4, 5, 5]
const res = []
for(let i = 0; i < arr.length; res.indexOf(arr[i++]) === -1 && res.push(arr[i - 1]));
console.info(res)

执行效率

clipboard.png

clipboard.png

那个我想纠正一下你的一个错误,是 for in 写法图片描述

var arr = [1,2,3,4,5,6,8,7,8,8,4,5,21,5,4,1,12,5,4,1,2,5];
var arr1=[]
for(var i=0,l=arr.length;i<l;i++){
    if(arr1.indexOf(arr[i])==-1){
        arr1.push(arr[i])
    }
}
console.log(arr1)
推荐问题
宣传栏