数组去重的几种方法

非 Y 不嫁゛ 提交于 2019-11-26 12:11:18

  先介绍两种比较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"作为属性。  
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!