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 filter = item => new Date(item.Date) <= new Date("2020-07-02")

const res = data
.filter(filter)
.map(item => {
 delete item.Date
 return item
})
.reduce((acc, item) => {
  Object.entries(item)
    .forEach(([key, value]) => {
      acc[key] = (acc[key] || 0) + value
    })

  return acc
}, {})

// add only up to 2020-07-02
const expected = {
  DK: 3678,
  FI: 29834,
  FR: 62260,
  GB: 47325,
  NO: 162328,
  NZ: 14752,
  SE: 414695
}

console.log(res, expected)
console.log(JSON.stringify(res) === JSON.stringify(expected) )