码迷,mamicode.com
首页 > 其他好文 > 详细

数组排重

时间:2014-08-19 22:17:35      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   cti   div   log   

1   function pass(arr){
2       var result=arr.filter(function(item,i){
3          return arr.indexOf(item)==i;
4       })
5    return result;
6   }
7  console.log(pass([0,1,2,1,3,5,2,2,2,‘2‘,‘5‘]));//结果[0, 1, 2, 3, 5, "2", "5"] 

利用数组的indexOf方法的特点,indexOf只要找到要查找项的索引后就会结束返回索引值,如果有两个相同的项,也只会返回第一项的索引。

所以,arr.indexOf(item)在对第二个出现的项执行时返回的索引和这一项的索引不相等,返回的是第一次出现的这个值的索引,这个值就不会返回到filter执行后得到的新数组中。

 

要得到一个数组项中值的所有索引可以用循环实现

 1 var a=[2,3,2,5,6,1,2,3],b=[];
 2     var i= 0,index=0;
 3     while(i< a.length){
 4         var index=(a.indexOf(2,index));
 5         if(index===-1){
 6             break;
 7         }
 8         b.push(index);
 9         index++;
10         i++;
11     }
12     console.log(b);//结果[0,2,6]

 

数组排重,布布扣,bubuko.com

数组排重

标签:style   blog   color   io   ar   cti   div   log   

原文地址:http://www.cnblogs.com/wuxiandiejia/p/3923175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!