3 回答

TA贡献1780条经验 获得超1个赞
如果元素的顺序不同。
const a1 = [
{
"name":"foo",
"count":5,
},
{
"name":"bar",
"count":0,
}
]
const a2 = [
{
"name":"foo",
"pop":58,
},
{
"name":"bar",
"pop":22,
}
]
let out = a1.map(e => {
let {pop} = a2.find(({name}) => name = e.name);
return {...e, pop, result: isFinite(pop/e.count)? pop/e.count : 0}
});
console.log(out)
如果元素的顺序相同
const a1 = [
{
"name":"foo",
"count":5,
},
{
"name":"bar",
"count":0,
}
]
const a2 = [
{
"name":"foo",
"pop":58,
},
{
"name":"bar",
"pop":22,
}
]
let out = a1.map((e, i) => {
let {pop} = a2[i];
return {...e, pop, result: isFinite(pop/e.count)? pop/e.count : 0}
});
console.log(out)

TA贡献1809条经验 获得超8个赞
试试这个:
const a3 = [a1, a2].reduce((a, b) =>
a.map((c, i) => Object.assign({result: b[i].pop/c.count}, c, b[i]))
);
添加回答
举报