Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 如何基于2个关键点合并阵列对象?_Javascript_Arrays - Fatal编程技术网

Javascript 如何基于2个关键点合并阵列对象?

Javascript 如何基于2个关键点合并阵列对象?,javascript,arrays,Javascript,Arrays,这是我的密码 var数组=[{ 医嘱ID:“L01”, 地点:“伦敦” 数量:“6.00”, 状态:“产品A }, { 医嘱ID:“L01”, 地点:“伦敦” 数量:“2.00” 状态:“产品B” }, { 医嘱ID:“L01”, 地点:“伦敦” 数量:“3.00” 状态:“产品C” }, { 订单号:“P01”, 地点:“巴黎” 数量:“7.00” 状态:“产品A” }, { 订单号:“P01”, 地点:“巴黎” 数量:“4.00” 状态:“产品B” }, { 订单号:“P01”, 地点:“

这是我的密码

var数组=[{
医嘱ID:“L01”,
地点:“伦敦”
数量:“6.00”,
状态:“产品A
},
{
医嘱ID:“L01”,
地点:“伦敦”
数量:“2.00”
状态:“产品B”
},
{
医嘱ID:“L01”,
地点:“伦敦”
数量:“3.00”
状态:“产品C”
},
{
订单号:“P01”,
地点:“巴黎”
数量:“7.00”
状态:“产品A”
},
{
订单号:“P01”,
地点:“巴黎”
数量:“4.00”
状态:“产品B”
},
{
订单号:“P01”,
地点:“巴黎”
数量:“9.00”
状态:“产品C”
}
];
您可以使用

var数组=[{OrderId:“L01”,位置:“伦敦”,数量:“6.00”,状态:“产品A”},{OrderId:“L01”,位置:“伦敦”,数量:“2.00”,状态:“产品B”},{OrderId:“L01”,位置:“伦敦”,数量:“3.00”,状态:“产品C”},{OrderId:“P01”,位置:“巴黎”,数量:“7.00”,状态:“产品A”},{OrderId:“P01”,位置:“巴黎”,数量:“4.00”,状态:“产品B”},{OrderId:“P01”,位置:“巴黎”,数量:“9.00”,状态:“产品C”});
const merged=array.reduce((r,{OrderId,Location,Status,Qty})=>{
常量[p,后缀]=状态拆分(“产品”)
r[OrderId]=r[OrderId]| |{OrderId,Location};
r[OrderId][“数量”+后缀]=数量;
返回r;
},{})
常量输出=对象值(合并)
log(输出)
您可以使用

var数组=[{OrderId:“L01”,位置:“伦敦”,数量:“6.00”,状态:“产品A”},{OrderId:“L01”,位置:“伦敦”,数量:“2.00”,状态:“产品B”},{OrderId:“L01”,位置:“伦敦”,数量:“3.00”,状态:“产品C”},{OrderId:“P01”,位置:“巴黎”,数量:“7.00”,状态:“产品A”},{OrderId:“P01”,位置:“巴黎”,数量:“4.00”,状态:“产品B”},{OrderId:“P01”,位置:“巴黎”,数量:“9.00”,状态:“产品C”});
const merged=array.reduce((r,{OrderId,Location,Status,Qty})=>{
常量[p,后缀]=状态拆分(“产品”)
r[OrderId]=r[OrderId]| |{OrderId,Location};
r[OrderId][“数量”+后缀]=数量;
返回r;
},{})
常量输出=对象值(合并)

console.log(output)
jquery在这种情况下会有什么帮助?只需使用数组的一个适当函数。稍微玩一玩,当你有一些代码要显示时,编辑你的问题。预期输出中的第二个对象不应该是“P01”和“Paris”吗“?@holydragon是的,你是对的,jquery在这种情况下有什么帮助?只需为数组使用一个适当的函数。玩一玩,当你有一些代码要显示时,编辑你的问题。预期输出中的第二个对象不应该是“P01”和“Paris”?@holydragon是的,你是对的。我仍在努力让我的大脑处理reduce函数。你能再解释一下当前值吗?我是说。。。您是否刚刚提交了结构,而reduce函数知道如何处理它?还有,什么是[p,后缀]??你用这个来声明一个变量,但这个p是什么?提前谢谢!你能用这个从数组中声明变量吗???p=“”和后缀=“”?
reduce
类似于for循环,但带有累加器对象或数组。每次迭代我都会根据
状态
订单ID
更新累加器。
reduce
的第二个参数是循环通过的当前项。我用它把它们分成变量。由于
split
返回2个值,因此可以使用数组析构函数获取数组中的第二项。这就是“[p,后缀]”syntax@JustAMicrobe那是。实际上,我们可以跳过第一个声明,因为我们只关心索引=1处的字母表。像这样:
[,后缀]=Status.split(“产品”)
@justamirobe我建议查看评论中的MDN链接。它是在ES6中引入的,它非常有用。我仍在努力让我的头脑了解reduce函数。你能再解释一下当前值吗?我是说。。。您是否刚刚提交了结构,而reduce函数知道如何处理它?还有,什么是[p,后缀]??你用这个来声明一个变量,但这个p是什么?提前谢谢!你能用这个从数组中声明变量吗???p=“”和后缀=“”?
reduce
类似于for循环,但带有累加器对象或数组。每次迭代我都会根据
状态
订单ID
更新累加器。
reduce
的第二个参数是循环通过的当前项。我用它把它们分成变量。由于
split
返回2个值,因此可以使用数组析构函数获取数组中的第二项。这就是“[p,后缀]”syntax@JustAMicrobe那是。实际上,我们可以跳过第一个声明,因为我们只关心索引=1处的字母表。像这样:
[,后缀]=Status.split(“产品”)
@justamirobe我建议查看评论中的MDN链接。它是在ES6中引入的,非常有用