原数组: [{id: "1000001", value:[1.1, "1.1"]},
{id: "1000002", value:[2.1, "2.1"]},
{id: "1000001", value: [1.2, "1.2"]},
{id: "1000002", value:[2.2, "2.2"]},
{id: "1000001", value: [1.3, "1.3"]},
{id: "1000002", value:[2.3, "2.3"]},
]
期待的数组:
[
{id: "1000001", value:[[1.1, "1.1"],[1.2, "1.2"],[1.3, "1.3"]]},
{id: "1000002", value:[[2.1, "2.1"],[2.2, "2.2"],[2.3, "2.3"]]},
]
请各位路过的大佬帮忙,谢谢了!
function dedup (arr = []) {
const mp = {}
for (let obj of arr) {
const { id , value} = obj
if (mp[id]) {
mp[id].value.push(value)
} else {
mp[id] = {id, value: [value]}
}
}
return Object.values(mp)
}
const data = [{id: "1000001", value:[1.1, "1.1"]},
{id: "1000002", value:[2.1, "2.1"]},
{id: "1000001", value: [1.2, "1.2"]},
{id: "1000002", value:[2.2, "2.2"]},
{id: "1000001", value: [1.3, "1.3"]},
{id: "1000002", value:[2.3, "2.3"]},
]
console.log(dedup(data))
###a.reduce((val, next) => {
val[next.id] = val[next.id] ? val[next.id].concat(next.value) : next.value
return val
}, {})