先介绍两种比较LOW的方式
1.
let ary=[1,2,3,1,2,3,3];
let newary=[];
//创建一个新数组保存不重复的元素
ary.forEach(item=>{
if(newary.includes("item"))//includes存在兼容时问题,并且性能不好
return;
newary.push(item);
});
2.直接使用splice
let ary = [1,2,3,2,1,4];
//直接在原数组操作
for(let i=0;i<ary.ength;i++){
let compare = ary[i];
for(let j=i+1;j<ary.length;j++)
{
if(compare===item)
ary.splice(j,1);
j--;//数组塌陷,不知道什么是数组塌陷可以参考我的上一篇随笔
}
}
接下来介绍一种比较优秀的去重方式,基于对象处理
let ary=[1,2,3,3,2,1,23,2];
let obj={};
for(let i=0;i<ary.length;i++)
{
let item = ary[i];
if(obj[item]!==undefined)
continue;
ary.splice(i,1);
i--;
obj[item] = item;//而非obj.item=item,这边是将item的值作为属性,而
//非"item"作为属性。
}