【发布时间】:2020-06-26 03:17:21
【问题描述】:
如何在javascript中修改数组对象,
obj1和obj2两个数组对象,其中title的键值相同,
然后在javascript中添加到键details。
如果obj1和obj2的标题相同,则在详细信息键中添加amt,idx,
function modifyArray(obj1, obj2){
return obj1.map(a1=> {
return {
...a1,
details: obj2
.filter(a2=> a2.title=== a1.title)
.map(a2=> ({ idx: a2.idx, amt: a2.amt|| 0 }))
}
})
}
var obj1= [
{id:1, title: "item1", details: [{idx:1, amt: 100},{idx:2, amt: 200}]}
{id:2, title: "item2", details: []},
{id:3, title: "item3" }
]
var obj2 =[
{ idx:"3", title: "item1", amt: 120},
{ idx:"4", title: "item1", amt: 140},
{ idx:"1", title: "item2", amt: 220},
{ idx:"1", title: "item3", amt: 240},
{ idx:"2", title: "item3", amt: 200}
]
预期输出:
[
{id:1, title: "item1", details: [{idx:1, amt: 100},{idx:2, amt: 200},{idx:3, amt: 120},{idx:4, amt: 140}]}
{id:2, title: "item2", details: [{idx:1, amt: 220}]},
{id:3, title: "item3", details: [{idx:1, amt: 240},{idx:2, amt: 200}] }
]
【问题讨论】:
标签: javascript arrays json object