JavaScript 数组去重方法合集(简洁易懂)

JavaScript数组去重

JavaScript去重的七种方法 简单易懂 方法一:暴力去重法

// 暴力去重法
function ArrayIsUnique (array) {
          
   
    if (!Array.isArray(array)) return;

    for (let i = 0; i < array.length; i++) {
          
   
        for (let j = i + 1; j < array.length; j++) {
          
   
            if (array[i] === array[j]) {
          
   
                array.splice(j, 1)
            }
        }
    }

    return array
}

方法二:Set方法

// Set方法去重
function ArrayIsUnique2 (array) {
          
   
    if (!Array.isArray(array)) return;

    const map = new Set(array)

    return Array.from(map)
}

方法三:Map方法

// Map方法去重
function ArrayIsUnique3 (array) {
          
   
    if (!Array.isArray(array)) return;

    const map = new Map()
    array.forEach(item => map.set(item, item))

    return Array.from(map.values())
}

方法四:先排序再去重

// 先排序再去重
function ArrayIsUnique4 (array) {
          
   
    if (!Array.isArray(array)) return;
    
    array.sort()
    
    for (let i = 0; i < array.length; i++) {
          
   
        if (array[i] === array[i + 1]) {
          
   
            array.splice(i, 1)
        }
    }

    return array
}

方法五:indexof方法去重

// 定义一个新数组 如果没有就存进去
function ArrayIsUnique5 (array) {
          
   
    if (!Array.isArray(array)) return;

    const arr = []

    array.forEach(item => {
          
   
        if (arr.indexOf(item) === -1) {
          
   
            arr.push(item)
        }
    })

    return arr
}

方法六:使用includes方法

function ArrayIsUnique6 (array) {
          
   
    if (!Array.isArray(array)) return;

    const arr = []

    array.forEach(item => {
          
   
        if (!arr.includes(item)) {
          
   
            arr.push(item)
        }
    })

    return arr
}

方法七:filter方法

function ArrayIsUnique7 (array) {
          
   
    if (!Array.isArray(array)) return;

    let arr = array.map(item => item)

    array.forEach(item => {
          
   
        arr = arr.filter(i => item !== i)
        arr.push(item)
    })

    return arr
}

如有错误 可指出修改 谢谢

经验分享 程序员 微信小程序 职场和发展