在Javascript中合并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

我有下面的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 - 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]}));