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

166
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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