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

157
Visualizações
Matriz dinámica y multidimensional en javascript: el conteo no funciona

Necesito una matriz tridimensional para contar, necesita crecer dinámicamente. Se compone de índice, cadena1 y cadena2.

Esto genera exactamente lo que quiero (para un solo bucle, ya que la matriz está codificada en el índice 0)

 var otr_entries=[[0,"",""]]; var otr_entries_count=0; some_working_for_loop() { if(is_important_value_to_save()) { //otr_entries_count=otr_entries_count+1; otr_entries[otr_entries_count][1]=xx[i].previousElementSibling.innerHTML; otr_entries[otr_entries_count][2]=xx[i].innerHTML; window.alert(otr_entries[otr_entries_count][1]); // Expected output window.alert(otr_entries[otr_entries_count][2]); // Expected output } }

pero cuando reemplazo otr_entries[0][2] con otr_entries[otr_entries_count][2] el script falla repentinamente, si el conteo no es 0. Eso significa que la matriz no solo está creciendo. Entonces, ¿cómo se puede archivar esto?

 var otr_entries=[[0,"",""]]; var otr_entries_count=0; just_some_perfectly_working_for_loop(;;) { if(is_important_value_to_save()) { otr_entries_count=otr_entries_count+1; // Counting up breaks the code otr_entries[otr_entries_count][1]=xx[i].previousElementSibling.innerHTML; otr_entries[otr_entries_count][2]=xx[i].innerHTML; window.alert(otr_entries[otr_entries_count][1]); // No output, script totally stops window.alert(otr_entries[otr_entries_count][2]); // No output, script totally stops } }

EDITAR:

Esta es mi solución, gracias a la ayuda de Peters. Funciona perfectamente bien.

 var otr_entries=[]; var otr_entries_count=-1; some_working_for_loop() { if(is_important_value_to_save()) { otr_entries_count=otr_entries_count+1; otr_entries.push(otr_entries_count,xx[i].previousElementSibling.innerHTML,xx[i].innerHTML) window.alert(otr_entries[otr_entries_count][1]); // Expected output window.alert(otr_entries[otr_entries_count][2]); // Expected output } }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Solo está incrementando el contador antes de agregar un nuevo elemento en la matriz. La solución es mover la línea de incremento del contador al final:

esto funcionó para mí

 const otr_entries=[[0,"",""]]; const otr_entries_count=0; for(const entry of otr_entries) { // condition if(true) { otr_entries[otr_entries_count][1]='something'; otr_entries[otr_entries_count][2]='something else' window.alert(otr_entries[otr_entries_count][1]); window.alert(otr_entries[otr_entries_count][2]); otr_entries_count+=1; } }
about 4 years ago · Juan Pablo Isaza Relatório

0

Si en el ciclo está tratando de agregar a la matriz, debe hacer otr_entries.push([count,"something","something2"]).

Además, si está agregando a la matriz, no debería usar esa misma matriz como su control de bucle.

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