gpt4 book ai didi

javascript - 如何连接具有相同 id 的对象值

转载 作者:行者123 更新时间:2023-11-28 17:15:11 25 4
gpt4 key购买 nike

我有一个数组:

let ar = [
{
uid:1,
flat_no: 1
},
{
uid:2,
flat_no: 2
},
{
uid:1,
flat_no:3
}
];

如果uid相同,那么我想删除重复的uid并连接其flat_no。输出数组应该是这样的:

[
{
uid:1,
flat_no: [1,3]
},
{
uid:2,
flat_no: 2
}
];

最佳答案

您可以使用 Array.reduce 的组合和 Array.find .

如果您在累加器数组中找到现有项目,只需更新它的 flat_no 属性,否则将其推送到累加器数组中。

let arr = [
{
uid: 1,
flat_no: 1
},
{
uid: 2,
flat_no: 2
},
{
uid: 1,
flat_no: 3
}
]

arr = arr.reduce((arr, item) => {
const existing = arr.find(innerItem => innerItem.uid === item.uid)

if (existing) {
existing.flat_no = Array.isArray(existing.flat_no)
? existing.flat_no
: [existing.flat_no]

existing.flat_no.push(item.flat_no)
} else {
arr.push(item)
}

return arr
}, [])

console.log(arr)

关于javascript - 如何连接具有相同 id 的对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53646282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com