js数组中相同对象去重

81 阅读1分钟

问题描述:在一个数组中,有相同id的多个对象相同,要得到一个去重后的数组。

    let arr = [
        { id: 3, value: 2, name: 'jack' },
        { id: 2, value: 3, name: 'g' },
        { id: 1, value: 2, name: 'jaddck' },
        { id: 3, value: 2, name: 'jack' },
        { id: 1, value: 2, name: 'jaddck' },
    ]

    function arrayTo(arr) {
        let arrObjMap = {}
        let result = []
        for (let i = 0; i < arr.length; i++) {
            let arrObj = arr[i]
            if (arrObj['id'] in arrObjMap) {
                continue
            }
            arrObjMap[arrObj['id']] = arrObj
            result.push(arrObj)
        }

        return result;
    }
    console.log(arrayTo((arr)))

结果:

image.png