一、 原数组
let list = [
{"id": 1300, "data": {"time": "13:00", "y1": 35, "y2": 40}},
{"id": 1330, "data": {"time": "13:05", "y1": 10, "y2": 15}},
{"id": 1330, "data": {"time": "13:10", "y1": 15, "y2": 20}},
{"id": 1330, "data": {"time": "13:15", "y1": 20, "y2": 25}},
{"id": 1330, "data": {"time": "13:20", "y1": 25, "y2": 30}},
{"id": 1330, "data": {"time": "13:25", "y1": 30, "y2": 35}},
{"id": 1330, "data": {"time": "13:30", "y1": 35, "y2": 40}},
{"id": 1400, "data": {"time": "13:35", "y1": 40, "y2": 45}},
{"id": 1400, "data": {"time": "13:40", "y1": 45, "y2": 50}},
{"id": 1400, "data": {"time": "13:45", "y1": 50, "y2": 55}},
{"id": 1400, "data": {"time": "13:50", "y1": 55, "y2": 60}},
{"id": 1400, "data": {"time": "13:55", "y1": 60, "y2": 65}},
{"id": 1400, "data": {"time": "14:00", "y1": 65, "y2": 70}},
{"id": 1430, "data": {"time": "14:05", "y1": 70, "y2": 75}},
{"id": 1430, "data": {"time": "14:10", "y1": 75, "y2": 80}},
{"id": 1430, "data": {"time": "14:15", "y1": 80, "y2": 85}},
{"id": 1430, "data": {"time": "14:20", "y1": 85, "y2": 90}},
{"id": 1430, "data": {"time": "14:25", "y1": 90, "y2": 95}},
{"id": 1430, "data": {"time": "14:30", "y1": 95, "y2": 100}}
]
二、将数据进行分组,
let newlist={}
list .forEach(item=>{
//判断该对象的id 是否存在,如果不存在创建一个id,并赋值一个数组
if ( !newlist[item.id]){
newlist[item.id]=[]
}
newlist[item.id].push(item.data)
})
-->生成如下
{
'1300': [ { time: '13:00', y1: 35, y2: 40 } ],
'1330': [
{ time: '13:05', y1: 10, y2: 15 },
{ time: '13:10', y1: 15, y2: 20 },
{ time: '13:15', y1: 20, y2: 25 },
{ time: '13:20', y1: 25, y2: 30 },
{ time: '13:25', y1: 30, y2: 35 },
{ time: '13:30', y1: 35, y2: 40 }
],
'1400': [
{ time: '13:35', y1: 40, y2: 45 },
{ time: '13:40', y1: 45, y2: 50 },
{ time: '13:45', y1: 50, y2: 55 },
{ time: '13:50', y1: 55, y2: 60 },
{ time: '13:55', y1: 60, y2: 65 },
{ time: '14:00', y1: 65, y2: 70 }
],
'1430': [
{ time: '14:05', y1: 70, y2: 75 },
{ time: '14:10', y1: 75, y2: 80 },
{ time: '14:15', y1: 80, y2: 85 },
{ time: '14:20', y1: 85, y2: 90 },
{ time: '14:25', y1: 90, y2: 95 },
{ time: '14:30', y1: 95, y2: 100 }
]
}
3.进行求和
let lastdata = []
for (let i in newlist) {
let y1 = newlist[i].map(item => item.y1).reduce((a, b) => (a + b), 0);
let y2 = newlist[i].map(item => item.y2).reduce((a, b) => (a + b), 0);
lastdata.push({ item: i, y1: y1, y2: y2 })
}
--> 最后结果
[
{ item: '1300', y1: 35, y2: 40 },
{ item: '1330', y1: 135, y2: 165 },
{ item: '1400', y1: 315, y2: 345 },
{ item: '1430', y1: 495, y2: 525 }
]
本文介绍了一种使用JavaScript对数组元素进行分组并计算特定字段总和的方法。通过遍历原始数组,根据对象ID将数据分组到新的对象中,随后对每个分组内的数据进行求和操作。
400

被折叠的 条评论
为什么被折叠?



