js数组去重的方法

数组去重,指的是从一个有重复元素的数组中筛选出来重复的元素。

1.方法一:在原数组中筛选

 var arr=[1,2,3,4,1,2,3,2,1,1,3,7,7,2,1,6,1,2,4,5,1,2,3];
        for(var i=0;i;i++){
            //将数组中的每个元素赋值给变量item
            var item=arr[i];
            for(var j=i+1;j;j++){
                if(item===arr[j]){
                    arr.splice(j,1);//从第j位开始删除1个元素
                    j--;
                }
            }
        }
        console.log(arr);

2.方法二:创建一个新数组筛选

// 去重
var arr=[1,2,3,4,1,2,3,2,1,1,3,7,7,2,1,6,1,2,4,5,1,2,3];
//创建一个新的空数组,用来存储去掉重复的元素之后剩余的元素
var arr1=[];
//for循环遍历原数组arr
for(var i=0;i;i++){
    var item=arr[i];
    //此处bool是个状态,将其置为true,默认其值为真
    var bool=true;
    //for循环遍历新建的arr1数组
    for(var j=0;j;j++){
         //如果检测到arr中的元素值等于arr1中的某个元素值,就将bool置为false,表示该元素重复,跳出本for循环,并且不会将它置入arr1中
         if(arr1[j]===item){
            bool=false;
            break;
         }
    }
         //只有bool的值为真时(即某个arr中的元素不等于arr1中的任何一个元素)才会将该元素置入arr1
         if(bool){
            arr1.push(item);
         }
}
console.log(arr);//原数组
console.log(arr1);//去重后的数组

你可能感兴趣的:(javascript)