Javascript 合并3个数组并加入lodash中的字段?
请帮助我,我希望合并差异3个数组以与字段\u id连接。我的数组就是这样的。我试图通过\u id合并所有数组,但仍然工作错误,我不知道请Javascript 合并3个数组并加入lodash中的字段?,javascript,lodash,Javascript,Lodash,请帮助我,我希望合并差异3个数组以与字段\u id连接。我的数组就是这样的。我试图通过\u id合并所有数组,但仍然工作错误,我不知道请 //array 1 let inventory =[ { _id: '0001', itemId: '0001', onHandQty: 70, avgCost: 9, balanceAmount: 630, }, { _id: '0002', itemId: '0002', onHandQty: 70,
//array 1
let inventory =[
{ _id: '0001',
itemId: '0001',
onHandQty: 70,
avgCost: 9,
balanceAmount: 630,
},
{ _id: '0002',
itemId: '0002',
onHandQty: 70,
avgCost: 5,
balanceAmount: 350,
}
]
//array 2
let po =[
{
_id : "0002",
onHandPO : 10
},
{
_id : "0001",
onHandPO : 20
}
]
//array 3
let so =[
{
_id: "0001",
onHandSO: 2
},
{
_id: "0003",
onHandSO: 1
}
]
我希望所有数组通过_id连接成这样的一个数组。这是我需要的结果
let inventory =[
{ _id: '0001',
itemId: '0001',
onHandQty: 70,
avgCost: 9,
balanceAmount: 630,
onHandPO : 20,
onHandSO: 2
},
{ _id: '0002',
itemId: '0002',
onHandQty: 70,
avgCost: 5,
balanceAmount: 350,
onHandPO : 10
},
{ _id: '0003',
itemId: '0002',
onHandQty: 0,
avgCost: 0,
balanceAmount: 0,
onHandPO : 0
onHandSO: 1
}
]
您可以展开所有数组,按公共值对它们进行分组,并将所有值指定给单个对象。然后得到结果
var inventory=[{{u-id:'0001',itemId:'0001',onHandQty:70,平均成本:9,余额金额:630},{u-id:'0002',itemId:'0002',onHandQty:70,平均成本:5,余额金额:350}],
po=[{u-id:“0002”,onHandPO:10},{u-id:“0001”,onHandPO:20}],
so=[{u-id:“0001”,onHandSO:2},{u-id:“0003”,onHandSO:1}],
结果=([库存、采购订单、销售订单])
.flatte()
.groupBy(“\u id”)
.map(值=>\赋值({},…值))
.value();
console.log(u.sumBy(result,'onHandSO'));//onHandSO总数
控制台日志(结果)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
至少,您可以尝试一些东西并展示结果。事实上,它很广泛。这是我的结果:让测试=[{u-id:'0001',itemId:'0001',onHandQty:70,平均成本:9,余额金额:630,onHandPO:20,onHandSO:2},{u-id:'0002',itemId:'0002',onHandQty:70,avgCost:5,余额金额:350,onHandPO:10},{{u-id:'0003',itemId:'0002',onHandQty:0,avgCost:0,balanceAmount:0,onHandPO:0 onHandSO:1}]obhect-wid{u-id:0003
如何获得其余的值?结果:{u-id:'0003'像那样[{u-id:'0001',onHandSO:2},{id:'0003',onHandSO:1}]
I want resultlet result=[{u id:'0001',itemId:'0001',onHandQty:70,平均成本:9,余额金额:630,onHandPO:20,onHandSO:2},{u id:'0002',itemId:'0002',onHandQty:70,avgCost:5,余额金额:350,onHandPO:10},{{u-id:'0003',itemId:'0002',onHandQty:0,avgCost:0,balanceAmount:0,onHandPO:0 onHandSO:1}]
cani sum字段total+=onHandSO