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

269
Visualizações
¿Cómo puedo crear varias listas desordenadas a partir de una matriz bidimensional?

Quiero crear varias listas desordenadas debajo de un div para mostrar una matriz multidimensional que creé anteriormente.

Tengo esto actualmente:

 let divElementGroups = document.createElement("div"), numberOfulListItems = groups.length, ulListItemGroups = document.createElement("ul"), listItemGroups = document.createElement("li"), elementTitleGroups = document.createElement("span"); document.getElementById("teamsList").appendChild(divElementGroups); for (var i = 0; i < numberOfulListItems; i++) { divElementGroups.appendChild(ulListItemGroups); ulListItemGroups.appendChild(elementTitleGroups); elementTitleGroups.textContent = "Groep" + i; for (var j = 0; j < groups[i].length; j++) { listItemGroups.innerHTML = ArrayClass[i][j]; ulListItemGroups.appendChild(listItemGroups); } }

Hasta donde yo sé, el primer ciclo for debería crear todas las listas desordenadas y el segundo debería poner todos los elementos de lista en estas listas desordenadas. Entonces, teóricamente, debería crear la lista desordenada y luego colocar un lapso con el "grupo 1" en la parte superior, seguido de todos los elementos en esa parte de la matriz.

Aquí hay una matriz de ejemplo:

 var groups = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];

Al ejecutar el código con esto, la salida que da:

 <div> <ul> <span>Groep1</span> <li>undefined</li> </ul> </div>

Si bien debería dar esta salida:

 <div> <ul> <span>Group 1</span> <li>1</li> <li>2</li> <li>3</li> </ul> <ul> <span>Group 2</span> <li>4</li> <li>5</li> <li>6</li> </ul> <ul> <span>Group 3</span> <li>7</li> <li>8</li> <li>9</li> </ul> </div>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El problema con su código es que solo crea un elemento ul y solo un elemento li , antes de los bucles.

Luego, los bucles pasan estos dos elementos como argumento para appendChild , lo que significa que el único elemento ul , simplemente se mueve , no se duplica . Lo mismo sucede con el único elemento li .

Por lo tanto, debe crear un nuevo elemento ul en cada iteración del ciclo externo y un nuevo elemento li en cada iteración del ciclo interno.

Un problema menor es que i con 0, por lo que generaría "Groep 0". Si desea que comience con 1, debe generar "(i + 1)".

Supongo que se suponía que ArrayClass eran groups (o viceversa)

Código corregido:

 var groups = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; let divElementGroups = document.createElement("div"), numberOfulListItems = groups.length; document.getElementById("teamsList").appendChild(divElementGroups); for (var i = 0; i < numberOfulListItems; i++) { let ulListItemGroups = document.createElement("ul"), elementTitleGroups = document.createElement("span"); divElementGroups.appendChild(ulListItemGroups); ulListItemGroups.appendChild(elementTitleGroups); elementTitleGroups.textContent = "Groep " + (i + 1); for (var j = 0; j < groups[i].length; j++) { let listItemGroups = document.createElement("li"); listItemGroups.innerHTML = groups[i][j]; //ArrayClass[i][j]; ulListItemGroups.appendChild(listItemGroups); } }
 <div id="teamsList"></div>

about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí hay una versión alternativa del script:

 const groups = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]; document.body.insertAdjacentHTML("afterbegin", groups.map((gr,i)=>`<ul><span>Group ${i+1}</span>${gr.map(l=>`<li>${l}</li>`).join("")}</ul>`).join(""));

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