數組去重的四種方法


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