數組去重的方法

1.數組

 // 數組去重
    // 檢查是否有重複數據,有,刪除,沒有,過
    function norepeat(arr){
        // 先準備空數組
        var sArr = [];
        // 拿到大數組中全部數據
        for(var i=0;i<arr.length;i++){
            // 依次檢測原來的空數組中是否包含大數組的數據,不包含,就放進去
            if(!has(sArr,arr[i])){
                sArr.push(arr[i])
            }
        }
        return sArr;
    }
    var a = norepeat([1,2,3,4,4,4,5,6,7,6,5,4,3,2,1,1,1,1])
    console.log(a)
    
    // 檢測數組中數據的功能
    function has(arr,n){
        for(var i=0;i<arr.length;i++){
            if(arr[i] === n){
                return true;
            }
        }
        return false;
    }

2. for of + includesspa

 var arr =[1,2,3,3,21,4,4,6]
    var arr1 = [];
    for(let i of arr){
        !arr1.includes(i)&& arr1.push(i)
    }
    console.log(arr1);

3. fillter + indexOfcode

var arr = [1, 2, 3, 3, 21, 4, 4, 6]
   var arr1=  arr.filter(function(item,index){
       return arr.indexOf(item) === index;
    })
  console.log(arr1)

4.  new  Set()blog

var arr =[1,1,2,2,3,3,4,4,5,5];
    var myset = new Set(arr);
    console.log(myset)
    var newArr =[];
    for(var i of myset){
        newArr.push(i)
    } 
    console.log(newArr);

5.雙層for循環加spliceit

function unique(arr) {
        for (var i = 0; i < arr.length; i++) {
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[i] == arr[j]) {         //第一個等同於第二個,splice方法刪除第二個
                    arr.splice(j, 1);
                    j--;
                }
            }
        }
        return arr;
    }

6.利用sort()方法io

function unique(arr) {
        if (!Array.isArray(arr)) {
            console.log('type error!')
            return;
        }
        arr = arr.sort()
        var arrry = [arr[0]];
        for (var i = 1; i < arr.length; i++) {
            if (arr[i] !== arr[i - 1]) {
                arrry.push(arr[i]);
            }
        }
        return arrry;
    }
相關文章
相關標籤/搜索