COVID Data api вычисляет ежедневные случаи из api, который возвращает коммутативные случаи путем вычитания из предыдущего значения объекта - PullRequest
0 голосов
/ 07 мая 2020

Я работал над приборной панелью COVID-19, где я хочу отображать ежедневные случаи заболевания и ежедневные смерти на линейном графике. Я могу получить данные из следующего 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"
}
] 

Где Подтверждено - общее количество случаев, обнаруженных в этот день. Для расчета ежедневных случаев в указанный c день мы можем вычесть подтвержденные из ранее подтвержденных или предшествующих дат. Например, 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 Я думаю, что это может быть основная c javascript функция, которая может l oop через массив и вычтите «Подтверждено» текущего объекта из «Подтверждено» предыдущего объекта. Пожалуйста, дайте мне знать, как этого добиться. Большое спасибо

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете использовать что-то вроде этого:

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
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...