博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义数组方法
阅读量:5836 次
发布时间:2019-06-18

本文共 1000 字,大约阅读时间需要 3 分钟。

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中,最后返回

 

转载于:https://www.cnblogs.com/fws407296762/p/3450228.html

你可能感兴趣的文章
用户交互
查看>>
libkyototycoon.so.2: cannot open shared object file: No such file
查看>>
ASP.Net 后台发回错误
查看>>
【微服务架构与实践】读后感
查看>>
使用Unicode写文本文件:一个简单类的示例
查看>>
UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
查看>>
NG-ZORRO 使用相关
查看>>
Hadoop_09_HDFS 的 NameNode工作机制
查看>>
java传值和传址
查看>>
【CF】7 Beta Round D. Palindrome Degree
查看>>
UITableView中使用selectRowAtIndexPath: animated: scrollPosition:出现的问题
查看>>
c# 实现ComboBox自动模糊匹配
查看>>
使用WITH AS提高性能简化嵌套SQL
查看>>
15.02.13-代码小技巧
查看>>
android 与JS之间的交互
查看>>
插入排序
查看>>
pytorch导入错误so: undefined symbol: _Z11libshm_initPKc
查看>>
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)
查看>>
动态实现类(对数据库的增删改查)
查看>>
再次写给VC++ Windows开发者
查看>>