首页 > 代码库 > 数组排重
数组排重
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]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。