- 我如何通过国家标签分组添加数据,并创建具有12个指示月份并包含分组前数据值的索引的数据数组。我需要帮助,如何根据月份编号推送和分组数据。
arr = [
{ label: 'US', data: '10', monthNumber: 1 },
{ label: 'US', data: '2', monthNumber: 3 },
{ label: 'US', data: '60', monthNumber: 2 },
{ label: 'UK', data: '10', monthNumber: 5 },
{ label: 'SA', data: '1', monthNumber: 1 },
{ label: 'CA', data: '70', monthNumber: 1 },
{ label: 'SA', data: '10', monthNumber: 12 },
];
现在我需要的结果是
[
{ label: 'US', data: [10,60,2,0,0,0,0,0,0,0,0,0] },
{ label: 'UK', data: [0,0,0,0,10,0,0,0,0,0,0,0] },
{ label: 'SA', data: [1,0,0,0,0,0,0,0,0,0,0,10] },
{ label: 'CA', data: [70,0,0,0,0,0,0,0,0,0,0,0] },
];
5条答案
按热度按时间mwecs4sa1#
用
reducing
在数组上创建一个新对象,用标签作为对象键,初始化属性值为一个带标签的对象,并预先填充一个零数组,然后用相关位置的数据更新数组。其他文件
fill
Object.values
uxh89sit2#
对于分组,可以使用
reduce
vfwfrxfs3#
这里需要注意的重要一点是,对于同一个月,标签值的编号将被最后一个替换。
k5ifujac4#
一个好的起点是首先按标签对数据进行分组。
然后从中获取值以重新Map数据。
创建Month数组,生成一个值为0的新数组
循环并根据MonthNumber将数据添加到月份数组中
oknwwptz5#
尝试此解决方案:
测试功能:
x一个一个一个一个x一个一个二个x