js的最快去重方法。

linong
  • 19.5k

去重最快的方法是什么?用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);
//这是我能写出来的,遍历一次,出现结果。
回复
阅读 8.1k
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)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏