Maybe use reduce
?
const newArr = Object.values(arr.reduce((acc, { date, state, duration }) => {
acc[date+state] = (acc[date+state] || 0) + +duration
return acc
}, {}))
Or something like
arr.reduce((acc, { date, state, duration }) => {
if (!acc[state]) {
acc[state] = {}
}
acc[state][date] = (acc[state][date] || 0) + +duration
return acc
}, {})
And some logic with Object.keys() and sort()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…