数组去重的四种方法


1、indexof去重方法

 遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

function remove(arr) {
        var temp = [];  //建立一个临时数组
        for(var i = 0;i < arr.length;i++){
            if (temp.indexOf(arr[i]) === -1){//如果临时数组里面没有这个数就把这个数存进去
                temp.push(arr[i]);
            }
        }
        return temp;
    }

    var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2];
    console.log(remove(arr1));

 

2、先将原数组排序,在与相邻的进行比较,如果不同则存入新数组。

function remove(arr) {
        var newArr = arr.sort();//先排序
        var temp = [];
        for(var i = 0;i < newArr.length;i++){
            if (newArr[i] !== newArr[i+1]){
                temp.push(newArr[i]);
            }
        }
        return temp;
    }

    var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2];
    console.log(remove(arr1));

 

3、数组下标法

如果当前数组的第i项在当前数组中第一次出现的位置不是i, 那么表示第i项是重复的,忽略掉。否则存入结果数组。
function remove(arr) {
        var temp = [];
        for(var i = 0;i < arr.length;i++){
            //如果当前数组的第i项在当前数组中第一次出现的位置是i
            if (arr.indexOf(arr[i]) === i){
                temp.push(arr[i]);
            }
        }
        return temp;
    }

    var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2];
    console.log(remove(arr1));

 

4、利用ES6中的set方法

 function remove(arr){
        //Set数据结构,它类似于数组,其成员的值都是唯一的
        return Array.from(new Set(arr));// 利用Array.from将Set结构转换成数组
 } var arr1 = [1,1,4,9,8,4,7,3,3,5,8,8,5,6,2]; console.log(remove(arr1));

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM