Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

169
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda