Ya he manejado una respuesta de una llamada API. Luego exporto los datos a una función en la que estoy usando un bucle for dentro. El const diomerda se pasa al archivo ejs donde estoy generando los datos de matriz de la API. Sin embargo, los datos en la matriz tienen más de 5000 entradas, por lo que quiero ejecutar un ciclo for para completar el archivo ejs con toda la matriz. Pero cuando uso loop.push , no llena el const loop . console.log(loop) solo lee [] .
Una vez que const loop = [] se llena con la matriz, iba a pasar los datos a const diomerda = [json.entries[loop].character.name]
Si alguien tiene alguna otra idea sobre cómo lograr lo que estoy tratando de hacer, no dude en enviarla. Gracias por adelantado.
.then(response => response.json()) .then(json => ejsoutput(json)) } function ejsoutput(json) { const loop = [] console.log(loop) const diomerda = [json.entries[0].character.name, json.entries[1].character.name, json.entries[2].character.name] for (var i = 0; i < json.entries.length; i++) { loop.push(i) } res.render('index', { leaderboard: diomerda }) } });Una vez que
const loop = []se llena con la matriz, iba a pasar los datos aconst diomerda = [json.entries[loop].character.name]
Si lo que quieres es poblar diomerda con cada nombre de personaje que regresa de la API, haz esto
function ejsoutput(json) { const diomerda = []; for (var i = 0; i < json.entries.length; i++) { diomerda.push(json.entries[i].character.name); } console.log(diomerda); }O en términos más simples
function ejsoutput(json) { const diomerda = json.entries.map(item => item.character.name); console.log(diomerda); }Para depurar, imprima (registre) el objeto json, en lugar de la matriz de bucle vacía (debería encaminarlo).
Json debería ser una promesa. Eso es probablemente lo que te estás encontrando. Ver: https://developer.mozilla.org/en-US/docs/Web/API/Response/json
Prueba algo como
json().then(function(json) { });