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

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

作者: 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