COVID数据api通过从以前的对象值中减去返回交换事例的api来计算每日事例



我一直在开发新冠肺炎仪表板,我想在该仪表板上以折线图显示每日病例和每日死亡人数。我可以从以下api获取数据https://api.covid19api.com/total/dayone/country/United%20Kingdom但它返回了给定日期的总可交换情形和总可交换死亡。返回的数据采用以下结构

const data = [ 
{
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 190584,
"Deaths": 28734,
"Recovered": 0,
"Active": 161850,
"Date": "2020-05-04T00:00:00Z"
},
{
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 194990,
"Deaths": 29427,
"Recovered": 0,
"Active": 165563,
"Date": "2020-05-05T00:00:00Z"
},
{
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 201101,
"Deaths": 30076,
"Recovered": 0,
"Active": 171025,
"Date": "2020-05-06T00:00:00Z"
}
] 

Where Confirmed是当天检测到的病例总数。为了计算特定日期的每日病例,我们可以从前一天的前一次确诊中减去确诊病例。例如,2020-05-05,当天确诊的病例数可以通过减去前一天20-05-04的病例数来计算。因此,计算结果为194990-190584=4442。对于数组的第一个对象,该值保持不变,因为没有以前的记录可以减去,因为我将在该国家检测到病例的第一天提取。因此,所需的数据将是以下

const desiredData= [ 
{
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 190584,
"Deaths": 28734,
"Recovered": 0,
"Active": 161850,
"Date": "2020-05-04T00:00:00Z"
},
{
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 4442,
"Deaths": 29427,
"Recovered": 0,
"Active": 165563,
"Date": "2020-05-05T00:00:00Z"
},
{
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 6111,
"Deaths": 30076,
"Recovered": 0,
"Active": 171025,
"Date": "2020-05-06T00:00:00Z"
}
] 

我使用的是Vue.js,我认为这可能是一个基本的javascript函数,它可以在数组中循环,并从上一个对象的"Confirmed"中减去当前对象的"Confirmed"。请务必让我知道如何才能做到这一点。非常感谢

您可以使用这样的东西:

result = data.map((record, index, allRecords) => {
const previous = allRecords[index - 1] || {
Confirmed: 0
}
return {
...record,
newConfirmed: record.Confirmed - previous.Confirmed
}
});

它会给你一个这样的结果,其中包括"newConfirmed"键和值:

[{
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 190584,
"Deaths": 28734,
"Recovered": 0,
"Active": 161850,
"Date": "2020-05-04T00:00:00Z",
"newConfirmed": 190584
}, {
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 194990,
"Deaths": 29427,
"Recovered": 0,
"Active": 165563,
"Date": "2020-05-05T00:00:00Z",
"newConfirmed": 4406
}, {
"Country": "United Kingdom",
"CountryCode": "",
"Province": "",
"City": "",
"CityCode": "",
"Lat": "0",
"Lon": "0",
"Confirmed": 201101,
"Deaths": 30076,
"Recovered": 0,
"Active": 171025,
"Date": "2020-05-06T00:00:00Z",
"newConfirmed": 6111
}]

最新更新