zoukankan      html  css  js  c++  java
  • 自定义数组方法

    1、删除数组重复值

    Array.prototype.deleteRes = function(){
       var temp = {};
       var newAry = [];
       for(var i = 0,aryLen = this.length; i < aryLen; i++){
        if(typeof temp[this[i]] == "undefined"){
         temp[this[i]] = "true";
        }
       }
       for(var j in temp){
        newAry.push(j);
       }
       return newAry;
      }


    个人总结:

    在网上对于删除数组的重复值有几种思路,其它的思路较为简单,上面的思路有点难理解,在这里我把自己的思路备注一下,用以记录,如有错误,请指出,多谢!!

    首先我们需要一个空的对象直接量,为什么呢?因为对象直接量中的内容是:属性名:属性值,属性名:属性值...这样的一个形式,这样方便我们进行筛选。然后我们需要一个空的数组,为了把筛选后的值装进来,并返回给我们。

    然后,我们进行一个for循环,遍历调用这个方法的数组,在for循环中,我们来进行筛选,这里有点难理解,我们需要一个实例:

    假设我们现在有一个数组:var arr = [111,222,333,444,111,222,555];我们来调用这个方法:arr.deleteRes();想象一下,当程序执行到第一个for循环的时候,如果i=0的时候,this[i] = 111,然后temp[this[i]]就是temp[111],了解对象直接量的人,应该会知道:temp[111]就是获取到属性名为111的属性值,但是111没有任何值,在循环中进行一个判断,如果temp[111]的类型是undefined,则将"true"赋值给temp[111],由于属性名为111的属性值不存在,判断为true,这样temp = {111:"true"},这样就将111加到temp中了,然后不停的循环。当循环到下一个111的时候,这个时候判断会发现temp[111] = "true",就不会添加进去了。然后再最后一个循环将属性名添加到newAry中,最后返回

  • 相关阅读:
    组内分享总结
    Java虚拟机内存
    代理 正向代理 反向代理
    Class文件打包成jar并执行
    Oracle 并集交集差集
    Sysstat安装以及简单操作
    树结构列表结构相互转换 js
    nginx配置root和alias的区别
    js call apply 用法
    VS Code配置同步
  • 原文地址:https://www.cnblogs.com/fws407296762/p/3450228.html
Copyright © 2011-2022 走看看