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)