gpt4 book ai didi

javascript - 如果两个数组中的键值匹配,如何组合两个数组对象

转载 作者:行者123 更新时间:2023-12-02 14:08:32 24 4
gpt4 key购买 nike

我正在尝试根据飞行键将两个数组对象与不同的数组对象组合起来。
如果 a2 中的值匹配,我想将其与 a1 合并并创建新数组。
a1 中的所有数据都必须存在,并且必须将匹配的航类详细信息从 a2 添加到 a1

请帮我解决这个问题。

a1 = [{'flight':'AF1223','oring':'CDF', 'Dest':'HNG'},{'flight':'XG23','oring':'HYD', 'Dest':'MMZ'},{'flight':'PK145','oring':'XYZ', 'Dest':'PEK'}]

a2 = [{'price':230,'avail':20,'flight':'AF1223'}, {'price':430,'avail':30,'flight':'DF43'},{'price':430,'avail':30,'flight':'XG23'} ]

combine array = [{'flight':'AF1223','oring':'CDF', 'Dest':'HNG','price':230,'avail':20},{'flight':'XG23','oring':'HYD', 'Dest':'MMZ'},{'flight':'PK145','oring':'XYZ', 'Dest':'PEK','price':430,'avail':30,}]

最佳答案

我给你一个完整的解决方案。

a = [
{'id':'A','oring':'CDF', 'Dest':'HNG'},
{'id':'B','oring':'HYD', 'Dest':'MMZ'},
{'id':'C','oring':'XYZ', 'Dest':'PEK'}];

b = [
{'id':'A','price':230,'avail':20,},
{'id':'D','price':430,'avail':30},
{'id':'B','price':430,'avail':30} ];

// put the object D into array a
for(var i=0;i<b.length;i++) {
var idb = b[i].id;
var idnotfound = true;
a.forEach(function(rowofa) {
var ida = rowofa.id;
if(ida == idb) {
idnotfound = false;
}
});
if(idnotfound){
a.push(b[i]);
}
}//for
//console.log('aa=>>',a);
//.......................................

//Match ids and then put all in array a

for(var i= 0;i<a.length;i++) {
var ida = a[i].id;
for(var j=0;j<b.length;j++) {
var idb = b[j].id;
if(ida == idb) {
a[i].avail = b[j].avail;
a[i].price = b[j].price;
}//if
} //for2
}//for1
console.log('aa=>',a);

输出将是

aa=> [ { id: 'A', oring: 'CDF', Dest: 'HNG', avail: 20, price: 230 },
{ id: 'B', oring: 'HYD', Dest: 'MMZ', avail: 30, price: 430 },
{ id: 'C', oring: 'XYZ', Dest: 'PEK' },
{ id: 'D', price: 430, avail: 30 } ]

关于javascript - 如果两个数组中的键值匹配,如何组合两个数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39841513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com