es6根据数组对象里的指定字段累加并去重

value.deviceStatusEnergyList = [

{

“name”: “故障”,

“time”: “555555”,

“value”: “0.00”,

“device”: “582-5”

},

{

“name”: “待机”,

“time”: “555555”,

“value”: “0.00”,

“device”: “582-5”

},

{

“name”: “停机”,

“time”: “555555”,

“value”: “1.00”,

“device”: “582-5”

},

{

“name”: “待机”,

“time”: “1231313”,

“value”: “2.00”,

“device”: “582-5”

},

{

“name”: “负载”,

“time”: “555555”,

“value”: “3.00”,

“device”: “582-5”

}

]

var arr3 = value.deviceStatusEnergyList

const res = new Map();

arr3 = arr3.reduce((list, item)=>{

if(res.has(item.name)){

res.get(item.name).time += item.time * 1

res.get(item.name).value += item.value * 1

}else{

let o = {…item,value: item.value*1,time:item.time*1}

list.push(o)

res.set(item.name, o)

}

return list

}, []);