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

153
Vistas
JavaScript - "forEach no es una función" dentro de fetch().then(); se niega a convertirse en una matriz

entonces, he hecho uso de la API fetch para...

  1. obtener un archivo JSON de mi servidor local
  2. inserte los contenidos en un elemento, con los valores apropiados, etc. (actualmente no funcional, pero tampoco relevante)

El archivo JSON: más o menos así: [["hello.css", "world.css", "why.css"], "doesn't.css", "this.css", "work.css"]

Las condiciones: si hay un gran grupo de cadenas en una matriz, dentro de la matriz, conviértalo en un <optgroup>.

Donde falla: en la Inicialización de la primera función forEach.

Lo que he descubierto:

  • El Texto Recibido es tratado como un Objeto, obviamente haciéndolo fallar.
  • Tampoco puede convertirlo en una matriz. O está vacío o falla de manera diferente. Mira más abajo para mis intentos.
  • Ya está analizado, aparentemente, porque con JSON.parse arroja un error, quejándose de ello.

El código

 fetch('./themes.json').then(theResponse => { let themesJSON = theResponse.text(); console.log(themesJSON); /* All "console.log()" functions are for debugging purposes */ themesJSON.forEach(elm => { let the = ''; if (elm.length > 1) { let optgroup = document.createElement('optgroup'); elm.forEach(elm => { let opt = document.createElement('option'); opt.value = elm; opt.innerText = elm; optgroup.insertAdjacentElement('beforeend', opt); console.log(opt); }) the.insertAdjacentElement("beforeend", optgroup) console.log(optgroup); } else { let opt = document.createElement('option'); opt.value = elm; opt.innerText = elm; the.insertAdjacentElement('beforeend', opt); console.log(opt); } document.getElementById('themeSelection').insertAdjacentElement("beforeend", the); console.log(the); }); })

los intentos

  • Esta respuesta aquí , devuelve una matriz vacía, y ya no es un objeto, creo
  • Otra respuesta en la misma publicación , exactamente el mismo resultado.
  • sea lo que sea , solo probé la primera opción, como la otra, bueno, no entendí del todo, ¿resultado? ya no recuerdo
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Tu estas usando:

let themesJSON = theResponse.text();

que devuelve una promesa que se resuelve en una cadena.

Lo que necesita es una representación de JavaScript de su archivo JSON.

Para eso la sintaxis correcta sería así:

 fetch('./themes.json') .then(theResponse => theResponse.json()) .then(actualArray => { console.log(actualArray) })
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