Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

253
Vistas
.push() no funciona fuera del bucle for

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 }) } });
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Una vez que const loop = [] se llena con la matriz, iba a pasar los datos a const 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); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

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) { });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda