Javascript 如何根据条件合并对象的数组属性?
如何将两个对象合并在一起。并在每次匹配数字时向身体中添加新对象? 我尝试了spread运算符,但它覆盖了该值,而不是更改它 之前:Javascript 如何根据条件合并对象的数组属性?,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,如何将两个对象合并在一起。并在每次匹配数字时向身体中添加新对象? 我尝试了spread运算符,但它覆盖了该值,而不是更改它 之前: let obj = { number: "123", body:[ { id:'client', text:'hi' } ] } let obj2 = { number: "123", body:[ { id:'client', text:'Hello there'
let obj = {
number: "123",
body:[
{
id:'client',
text:'hi'
}
]
}
let obj2 = {
number: "123",
body:[
{
id:'client',
text:'Hello there'
}
]
}
我需要将它们合并为:
obj = {
number: "123",
body:[
{
id:'client',
text:'hi'
},
{
id:'client',
text:'Hello there'
}
]
}
只需检查
number
键在这两种情况下是否相等,然后迭代obj2.body
并将每个项目推入obj.body
让obj={
编号:“123”,
正文:[{
id:'客户端',
文字:“嗨”
}]
}
设obj2={
编号:“123”,
正文:[{
id:'客户端',
短信:“你好”
}]
}
如果(对象编号===对象编号){
obj2.body.forEach(项=>{
物体推动器(项目)
})
}
log(obj)
如果只有两个对象,您可以这样做
if (obj.number == obj2.number) {
obj.body = obj.body.concat(obj2.body)
console.log("Here's is your new object", obj);
}
使用
concat()
连接数组。可以使用扩展运算符:new_array=[…array1,…array2]
连接数组。显示您尝试的内容。StackOverflow不是免费的编码服务。所以我希望你能。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参见,并选择:)您是否只有两个对象(obj
和obj2
)或一个对象数组?您可以使用concat()
而不是循环。@Barmar是的,但实际上您已经在我前面回答了,所以不想重复