//该方法要比indexOf性能好
const arr = [2,5,6,5,2,8,9];
const obj = {};
for (let i = 0; i < 100000; i++) {
arr.push(Math.round(Math.random()*10000));
}
console.time();
arr.forEach((item) =>{
obj[item] = 0;
});
// console.log(obj);//对象的键名不能重复,重复会被覆盖
const newArr = [];
for(const key in obj){
//对象的键名是字符串,用+转换成number类型
newArr.push(+key);
}
console.log(newArr);
console.timeEnd();
```
//indexOf去重
console.time();
const newArr1 = [];
arr.forEach((value) => {
if(newArr1.indexOf(value) === -1){
newArr1.push(value);
}
});
console.log(newArr1);
console.timeEnd();
测试结果效率比indexOf提高N多倍![在这里插入图片描述](https://img-blog.csdnimg.cn/20190928215543698.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N4enhpYW9mZW5nMTY4,size_16,color_FFFFFF,t_70)