标签: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]
标签:style blog color io ar cti div log
原文地址:http://www.cnblogs.com/wuxiandiejia/p/3923175.html