在Javascript中合并JSON和对象
我有下面的json和对象在Javascript中合并JSON和对象,javascript,json,object,Javascript,Json,Object,我有下面的json和对象 acctData = [ { "acctNum": "AAA - 1234", "user": "Alice" }, { "acctNum": "AAA - 5231", "user": "Bob" }, { "acctNum": "AAA - 9921", "user": "Alice" }, { "acctNum": "AAA - 8191", "user": "Alice" } ]; balance = { "AAA - 1234": 4593.22, "AAA
acctData = [
{
"acctNum": "AAA - 1234",
"user": "Alice"
},
{
"acctNum": "AAA - 5231",
"user": "Bob"
},
{
"acctNum": "AAA - 9921",
"user": "Alice"
},
{
"acctNum": "AAA - 8191",
"user": "Alice"
}
];
balance = {
"AAA - 1234": 4593.22,
"AAA - 9921": 0,
"AAA - 5231": 232142.5,
"AAA - 8191": 4344
};
我想合并它以得到下面的响应
[{acctNum: "AAA - 1234", user: "Alice", balance: 4593.22},
{acctNum: "AAA - 5231", user: "Bob", balance: 232142.5},
{acctNum: "AAA - 9921", user: "Alice", balance: 0},
{acctNum: "AAA - 8191", user: "Alice", balance: 4344}]
function myFunction() {
for (var key in acctData) {
for(var name in balance) {
if ( acctData[key].acctNum === name) {
acctData[key]['balance']= balance[acctData[key].acctNum];
break;
}
}
}
}
我认为这是一种正确的方法,可以使用vanilla javascript,或者有更有效的方法?您可以使用并且:
让acctData=[
{
附件:AAA-1234,
用户:爱丽丝
},
{
附件:AAA-5231,
用户:鲍勃
},
{
附件:AAA-9921,
用户:爱丽丝
},
{
附件:AAA-8191,
用户:爱丽丝
}
];
让余额={
AAA-1234:4593.22,
AAA-9921:0,
AAA-5231:232142.5,
AAA-8191:4344
};
让result=acctData.map{acctNum,user}=>{acctNum,user,balance:balance[acctNum]};
console.logresult 你只需使用地图就可以做到 常数acctData=[ { 附件:AAA-1234, 用户:爱丽丝 }, { 附件:AAA-5231, 用户:鲍勃 }, { 附件:AAA-9921, 用户:爱丽丝 }, { 附件:AAA-8191, 用户:爱丽丝 } ]; 常量余额={ AAA-1234:4593.22, AAA-9921:0, AAA-5231:232142.5, AAA-8191:4344 }; const newAccount=acctData.mapacc=>{ 会计科目余额=余额[会计科目]; 返回acc; }; console.lognewAccount 使用,试试这个 让acctData=[{acctNum:AAA-1234,用户:Alice},{acctNum:AAA-5231,用户:Bob},{acctNum:AAA-9921,用户:Alice},{acctNum:AAA-8191,用户:Alice}]; 让余额={AAA-1234:4593.22,AAA-9921:0,AAA-5231:232142.5,AAA-8191:4344};
console.logacctData.mapres=>{…res,'balance':balance[res.acctNum]}正确和高效不一定是一回事。你要什么?
let result = acctData.map(({acctNum, user}) => ({acctNum, user, balance: balance[acctNum]}));