js对象数组去重

一个对象数组,根据传入的属性key对应的值来去重,实现方法如下,用双数组法,只要一次循环即可,时间复杂度低

// 对象数组去重
arr = [{a:1},{a:2},{a:1},{a:3}]

function todo(pool,key) {
    let set = []
    let result = []
    for(let val of arr){
        if(!set.includes(val[key])){
            result.push(val)
            set.push(val[key])
        }
    }
    return result
}

todo(arr,'a')     // 输出[{a:1},{a:2},{a:3}]

 

posted @ 2023-01-27 21:17  方小川  阅读(798)  评论(0编辑  收藏  举报