[Java教程]数组排重
0 2014-08-19 22:06:16 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]
本文网址:http://www.shaoqun.com/a/98726.html
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。
0