美文网首页
数组去重--对象键值对法

数组去重--对象键值对法

作者: gaoqizhuhui | 来源:发表于2017-07-19 21:47 被阅读0次

思想:

(1).把数组中的每一项的值当作一个对象的属性名和属性值存起来

(2).但在每一次存储之前,首先判断当前这一项N是否在对象中已经存在了obj[N],如果值是N说明对象中已经存在这一项了(也说明在N之前数组中已经出现过一次N了),当前这一项已经重复了,在数组中把这一项删除。

如果值是undefined,说明对象中还没有这一项,也就是当前这一项还没有在数组中出现过,把当前项当作对象的属性名和属性值存进去。

eg:

var ary=[1,2,3,2,3,1,2,3,4,2,3,1,2,3,2,1,2,3];

var obj={};

for (var i=0; i<ary.length; i++) {

      var cur=ary [ i ];

      if (obj [cur] == cur){//说明对象中已经存在cur这一项了,也说明cur在数组中重复了,需要把当前这一项删除掉

//把数组末尾那一项拿过来替换当前项,再把数组末尾那一项的值删除掉

           ary [ i ]=ary [ary.length-1];

            i--;  //删除后下一项的索引往前了一位

            continue;

       }

       obj[cur] = cur;

}

相关文章

网友评论

      本文标题:数组去重--对象键值对法

      本文链接:https://www.haomeiwen.com/subject/dksrkxtx.html