js中的数组去重
本文主要提供了三个数组去重的方法
- 方法一,splice()
var arr=[1,2,3,8,9,2,4,2,5,6,3,2,]; for(var i=0;i<arr.length;i++){ var item=arr[i]; for(var j=i+1;j<arr.length;j++){//内层循环用来判断item后面的数与item是否相等 if(item===arr[j]){ arr.splice(j,1)//相等就把j位删了 j--;//j--是因为上面删除了一个元素,所以数组的长度减少了,j--后还有j++,运算完成后才是下一个遍历的元素的下标 } } } console.log(arr);
- 方法二
var arr=[1,2,3,8,9,2,4,2,5,6,3,2,]; var arr1=[];//新建一个数组用来存放无重复的元素 for(var i=0;i<arr.length;i++){ var item=arr[i]; var bool=true;//设置bool值 for(var j=0;j<arr1.length;j++){//遍历新数组 if(arr1[j]===item){//如果新数组里面的元素与item相等,那么设置bool为false,并跳出此次遍历,判断下一个item值与arr1[j]是否相等 bool=false; break; } } //如果bool为true,那么上面就没有arr1[j]与item相等,就将item存入新的数组arr1中 if(bool){ arr1.push(item); } } console.log(arr1);
- 方法三 indexOf()
var arr=[1,3,1,2,3,5,2,3,4,6]; var arr1=[]; for(var i=0;i<arr.length;i++){ if(arr1.indexOf(arr[i])===-1){ arr1.push(arr[i]); } }