Estoy creando una aplicación en vue.js y ahora mismo tengo un pequeño problema.
async fetchCovidDataByDay(){ const res = await fetch(`https://api.covid19api.com/live/country/${this.name}/status/confirmed`); const data = await res.json(); this.arrConfirmed= []; this.arrDeaths = []; this.arrRecovered = []; this.arrActive = []; data.forEach(item =>{ const date = moment(item.Date).format('MMMM Do YYYY'); const { Confirmed, Deaths, Recovered, Active } = item; this.arrConfirmed.push({date, total: Confirmed}) this.arrDeaths.push({date, total: Deaths}) this.arrRecovered.push({date, total: Recovered}) this.arrActive.push({date, total: Active}) }) return data; },
entonces mi total debe ser Confirmado[i] - Confirmado[i-1] :)
Si cambia el forEach a
data.forEach((item, i) =>{
Puede acceder al elemento anterior así
this.arrConfirmed.push({date, total: Confirmed - (data[i - 1]?.Confirmed || 0)})
?.Confirmed || 0
es puramente para el índice 0, cuando no hay un elemento anterior
const data = [{Confirmed: 100}, {Confirmed: 120}, {Confirmed: 180}, {Confirmed: 300}]; const arrConfirmed= []; let prevConfirmed = 0; data.forEach((item, i) =>{ const { Confirmed, } = item; arrConfirmed.push({total: Confirmed - (data[i - 1]?.Confirmed || 0)}); }); console.log(arrConfirmed);