01-数组去重

let array = [1, 2, 4, 4, 5, 6, 6, 7, 7, 1, 1, 3, 3]
// 1.双重for循环去重
function sortArray1(arr) {
    for (let i = 0; i < arr.length; i++) {
        for (let j = i + 1; j < arr.length; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1)
                j--;
            }
        }
    }
    return arr
}

// 2.利用filter方法去重
function sortArray2(arr) {
    return arr.filter(function(item, index, arr) {
        return arr.indexOf(item) === index
    })
}

// 3.使用indexOf去重
function sortArray3(arr) {
    let arrNew = []
    for (let i = 0; i < arr.length; i++) {
        if(arrNew.indexOf(arr[i]) === -1) {
            arrNew.push(arr[i])
        }
    }
    return arrNew
}

// 4.使用sort()先排序后去重
function sortArray4(arr) {
    arr = arr.sort()
    let array = [arr[0]]
    for (let i = 1; i < arr.length; i++) {
        if(arr[i] !== arr[i-1]) {
            array.push(arr[i])
        }
    }
    return array
}

// 5.使用ES6 Set去重(ES6中最常使用的方法)
function sortArray5(arr) {
    let setArray = new Set(arr)    // Set { 1, 2, 4, 5, 6, 7, 3 }
    // return Array.from(setArray) // 方法1
    return [...setArray]           // 方法2
}

// 6.利用includes去重
function sortArray6(arr) {
   let array = []
   for (let i = 0; i < arr.length; i++) {
       if(!array.includes(arr[i])) {
           array.push(arr[i])
       }
   }
   return array
}

// 7.使用reduce + includes
function sortArray7(arr) {
    return arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], [])
 }


你可能感兴趣的:(01-数组去重)