数组去重

1、新建空数组,遍历旧数组,新数组中没有的就push到新数组

  //1.新建空数组,遍历旧数组,新数组中没有的就push到新数组
            function delRepeat(array) {
                var newArr = [];
                for(var i = 0;i < array.length; i++){
                   if(newArr.indexOf(array[i]) == -1){
                       newArr.push(array[i]);
                   }
                } 
                return newArr;  
            }
            var arrlist = [1,2,52,22,1,5,2,22,5,4,6,5,8];
            document.write(arrlist +"去重后:" + delRepeat(arrlist) + "<br>");

2、数组排序后剔除相同的值  

 //2.排序后剔除相同的值
            function delRepeatBySort(array){
                var sortArr = bubbleSort(array);
                var tempArr = [sortArr[0]];
                for(var i = 1; i < sortArr.length; i++){
                    if(sortArr[i] !== tempArr[tempArr.length-1]){//sortArr数组的值与tempArr的最后一个值不同的就push到temp数组
                        tempArr.push(sortArr[i]);
                    }
                }
                return tempArr;
            }
            var arrlist2 = [1,2,52,8,89,88,99,88,78,54,89];
            document.write(arrlist2 + "去重后:" + delRepeatBySort(arrlist2) + "<br>");

3、利用对象的键值对比,遍历数组,将数组的值分别做对象的键和值,遍历数组过程中,在对象中没有的就push到新数组

 //3.利用对象的键值对比
            function delRepeatByObject(array){
                var tempObj = {}, newArr = [];
                for(var i = 0; i < array.length; i++){
                    var val = array[i];
                    if(!tempObj[array[i]]){//在对象中没有
                        tempObj[array[i]] = array[i].toString();
                        newArr.push(array[i])
                    }
                }
                return newArr;
            }
            var arrlist3 = [1,2,88,88,2,1];
            document.write(arrlist3 + "去重后:" + delRepeatByObject(arrlist3) + "<br>");

 

暂时只总结了这三种,以后慢慢总结补充。

 

-THE END-

posted @ 2019-01-17 12:00  小时光不期而遇  阅读(182)  评论(0编辑  收藏  举报