Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 合并3个数组并加入lodash中的字段?_Javascript_Lodash - Fatal编程技术网

Javascript 合并3个数组并加入lodash中的字段?

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,

请帮助我,我希望合并差异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,
   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 result
let 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