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

163
Visualizações
No se puede insertar una matriz 2d en una matriz

Lo siento si el título no es claro o está mal redactado, soy un codificador bastante nuevo que apesta recordando la terminología correcta. He estado tratando de crear una matriz 3d en Javascript que quiero que se vea así:

 var errorCountList = [ [ [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0] ], [ [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0] ], [ [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0] ] ];

Sin embargo, quiero que el número de listas [0, 0, 0, 0, 0, 0] en las partes 2d/3d de la lista pueda variar en longitud, si eso tiene algún sentido. Entonces, como resultado, he estado usando una serie de bucles para insertar listas en una matriz 2D antes de insertar estas matrices 2D en otra matriz para hacer una matriz 3D.

 for (count3 = 0; count3 < test.length; count3++) { part2.push([0, 0, 0, 0, 0, 0]); } for (count5 = 0; count5 < restrictionValues.length; count5++) { errorCountList.push(part2); }

con la prueba y los valores de restricción cambiando las longitudes de la lista. Sin embargo, mientras imprimo la lista usando print(JSON.stringify(errorCountList)); visualmente aparece igual que el errorCountList que configuré, los valores que muestra después de ejecutar el resto de mi código son radicalmente diferentes. ¿Cómo puedo solucionar este problema? Gracias por la ayuda de antemano, esta es la primera vez que publico aquí, lo siento por cualquier problema con la redacción o el formato.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Necesitas anidar los dos bucles for :

 test = [1, 2]; restrictionValues = [1, 2, 3]; errorCountList = []; for (count5 = 0; count5 < restrictionValues.length; count5++) { part2 = []; for (count3 = 0; count3 < test.length; count3++) { part2.push([0, 0, 0, 0, 0, 0]); } errorCountList.push([...part2]); } console.log(JSON.stringify(errorCountList))
 .as-console-wrapper { max-height: 100% !important; top: 0 }

about 4 years ago · Juan Pablo Isaza Relatório

0

Probablemente esté presionando referencias de una matriz, en lugar de presionar nueve matrices diferentes. Para ahorrar memoria, javascript nunca crea una nueva matriz al reasignar una matriz (y lo mismo ocurre con los objetos u).

Puede ver eso en el registro en el fragmento a continuación: /**ref:2**/,

 let part2 = [], errorCountList = [], restrictionValues = Array(3), test = Array(3); for (let count3 = 0; count3 < test.length; count3++) { part2.push([0, 0, 0, 0, 0, 0]); } for (let count5 = 0; count5 < restrictionValues.length; count5++) { errorCountList.push(part2); } console.log(errorCountList)

En su lugar, usaría una combinación de Array(n) para crear una matriz vacía y Array.fill(n) para llenar esa matriz vacía con ceros.

 let errorCountList = [], restrictionValues = 3, maxLength = 6; const FILLER = 0; const random = (max, min = 1) => { return Math.floor(Math.random() * max + min); }; for (let count5 = 0; count5 < restrictionValues; count5++) { errorCountList.push(Array( random(maxLength) ).fill(FILLER)); } console.log(errorCountList)

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