例如,数组中有几个对象:
let shop = [{
id: 105,
date: '2018-10-11',
fact: 100,
plan: 95
}, {
id:105,
date: '2018-10-12',
fact: 105,
plan: 100
}, {
id:106,
date: '2018-10-11',
fact: 110,
plan: 115
}, {
id:106,
date: '2018-10-12',
fact: 120,
plan: 115
}];
您需要从具有 id 和 fact 和 plan 数组的对象中获取结构(例如,sales):
let groups = [{
id: 105,
fact: [100, 105],
plan : [95, 100]
}, {
id: 106,
fact: [110, 120],
plan: [115, 115]
}];
console.log(groups);
我尝试使用reduce,但随后我一般将所有事实和计划加起来,而不考虑 id。我将第一个数组运行到forEachand map,但我也不知道如何让 id 保持唯一,fact并plan合并到这些 id 的数组中。
对于分组,您可以使用reduce方法。
将提供的数组折叠成key所在的对象
id,最后使用Object.values取值shopsidfact如果找到该组,我们将plan相应的元素值添加到其列表中实现可能略有不同,但要点是: