首页 > 编程语言 > 详细

JavaScript数组去重的几种方法

时间:2017-01-04 21:57:27      阅读:241      评论:0      收藏:0      [点我收藏+]

hi,我是平泽,有问题欢迎留言交流~

这里找到3种数组去重的方法,分享出来,方便他人,注释是我自己的理解

 1 function arr1() {
 2    var n = [];
 3     for(var i=0; i<this.length; i++) {
 4         if (n.indexOf(this[i]) == -1) n.push(this[i]);
 5     }
 6     return n;
 7 }
 8 //如果当前数组的第i个已经保存进了临时数组n,那么跳过,否则把当前项push到临时数组里面
 9 //若返回-1,表明没有在临时数组中找到,若不能于-1,则表明在临时数组中已有值
10 //indexOf用于查找指定字符串值在字符串中首次出现的位置,没有找到的话返回 -1
11 
12 function arr2() {
13     var n = {},r=[];
14     for(var i=0; i<this.length; i++) {
15         if (!n[this[i]]) {
16             n[this[i]] = true;
17             r.push(this[i]);
18         }
19     }
20     return r;
21 }
22 //n为hash表,r为临时数组
23 //如果hash表中没有当前项,就存入hash表
24 //并把当前数组的当前项push到临时数组里面
25 
26 function arr3() {
27     var n = [this[0]];
28     for(var i = 1; i < this.length; i++) {
29         if (this.indexOf(this[i]) == i) {
30             n.push(this[i]);
31          }
32     }
33      return n;
34 }
35 //n为结果数组,从第二项开始遍历
36 //如果当前数组的第i项在当前数组中第一次出现的位置不是i
37 //那么表示第i项是重复的,忽略掉。否则存入结果数组
38 //要是有重复的,那么重复出现的那个x第一次出现的位置就不是重复出现的位置了
39 //比如x第一次出现在3位,重复x出现在5位,indexOf查询到首次出现的位置是3位,那么5位的x就是重复的

 

JavaScript数组去重的几种方法

原文:http://www.cnblogs.com/kino156/p/6250071.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!