En el código a continuación, estoy recorriendo los results.data.data.length y estoy obteniendo los datos correctos y almacenándolos correctamente también.
Los datos:
param1 = [6, 27, 34, 22, 23, 25, 28, 24, 26, 30, 29] // => array length 11 Ahora, la parte con la que tengo un problema, en el segundo bucle obtengo el resultado correcto para EnrolledNum y obtengo 11 números emitidos pero individualmente. Hasta aquí todo bien.
Aquí está el problema, cuando trato de almacenar los valores en la matriz vacía var EnrolledNum = [] , solo almacena el último número. Soy console.log dentro y fuera del ciclo para asegurarme de que todo esté bien. El que está dentro del ciclo lo está registrando individualmente correctamente, pero el exterior del ciclo me muestra una matriz de longitud = 1, que es el último número. Cuál es el problema aquí?
fetchInitialData = async () => { this.setGlobal({ loading: true }); const ep = `${process.env.REACT_APP_API}/partners/programs/list`; const results = await axios.get(ep); console.log("results data", results); var param1 = []; for (let i = 0; i < results.data.data.length; i++) { param1.push(results.data.data[i].id); } console.log("Param....", param1); for (let j = 0; j < param1.length; j++) { console.log('chekcingJ',j,'CheckingParam#', param1[j]) const customers_ep = `${process.env.REACT_APP_API}/partners/programs/customers/${param1[j]}`; const customers = await axios.get(customers_ep); console.log("customers....", customers); var EnrolledNum = []; EnrolledNum.push( customers.data.data.filter( e => e.status_stage === "Accepted_Paid" || e.status_stage === "Accepted_Manual" ).length ); console.log("In the Loop: EnrolledNumber...", EnrolledNum); } console.log("Outside the Loop: EnrolledNumber...", EnrolledNum); };Tienes que mover la var EnrolledNum = []; fuera del bucle for
De lo contrario, está creando la variable cada vez que entra en el ciclo y la crea como una matriz vacía.
Probar esto:
etchInitialData = async () => { this.setGlobal({ loading: true }); const ep = `${process.env.REACT_APP_API}/partners/programs/list`; const results = await axios.get(ep); console.log("results data", results); var param1 = []; for (let i = 0; i < results.data.data.length; i++) { param1.push(results.data.data[i].id); } console.log("Param....", param1); var EnrolledNum = []; for (let j = 0; j < param1.length; j++) { console.log('chekcingJ',j,'CheckingParam#', param1[j]) const customers_ep = `${process.env.REACT_APP_API}/partners/programs/customers/${param1[j]}`; const customers = await axios.get(customers_ep); console.log("customers....", customers); EnrolledNum.push( customers.data.data.filter( e => e.status_stage === "Accepted_Paid" || e.status_stage === "Accepted_Manual" ).length ); console.log("In the Loop: EnrolledNumber...", EnrolledNum); } console.log("Outside the Loop: EnrolledNumber...", EnrolledNum); };