JSFiddle - React, Tailwind, and code Playground
by Salmin Skenderovic
JavaScript
const data = [{
"Date": "2020-07-01",
"SE": 209834,
"NO": 84847,
"FI": 15082,
"DK": 1839,
"NZ": 7809,
"GB": 24185,
"FR": 31433
},
{
"Date": "2020-07-02",
"SE": 204861,
"NO": 77481,
"FI": 14752,
"DK": 1839,
"NZ": 6943,
"GB": 23140,
"FR": 30827
},
{
"Date": "2020-07-03",
"SE": 187073,
"NO": 73499,
"FI": 13509,
"DK": 1839,
"NZ": 7818,
"GB": 23371,
"FR": 30058
}
]
const expected = {
DK: 3678,
FI: 29834,
FR: 62260,
GB: 47325,
NO: 162328,
NZ: 14752,
SE: 414695
}
function calculate(data, endDate, expected) {
const summary = {
DK: 0,
FI: 0,
FR: 0,
GB: 0,
NO: 0,
NZ: 0,
SE: 0
}
data.forEach(item => {
if (new Date(item.Date) <= new Date(endDate)) {
Object.keys(summary).forEach(key => {
summary[key] += item[key];
})
}
})
return [summary, JSON.stringify(summary) === JSON.stringify(expected)];
}
const [summary, result] = calculate(data, "2020-07-02", expected)
console.log(summary)
console.log(result)