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

142
Vistas
JS leyendo filas de MySQL en una matriz multidimensional

En mi script JS tengo:

 var originalArray = [ ['t00', ['Apple', 'Banana', 'Carrot', 'Yike'], [25, 317, 2]], ['t01', ['Mozart', 'Beethoven'], [2, 30, 9, 77, 1, 20]] ];

Hay un fragmento de código, que se ejecuta UNA VEZ en su vida, y escribe todos los elementos de la matriz en la tabla MySQL:

ingrese la descripción de la imagen aquí

Los dos campos de matriz " tstArr1 " y " tstArr2 " se definen como campos de TEXTO .
Puedo cambiar esto para que escriba en la base de datos estas 2 matrices en cualquier formato.

Ahora leo esta tabla y necesito reconstruir originalArray en una nueva matriz vacía llamada newArray :

 var newArray = [];

Pero no puedo hacer que sea exactamente igual que el originalArray .

Así es como leo y (sin éxito) newArray :

 function readEvent() { var xhr = new XMLHttpRequest(); xhr.open('GET', 'DB_read.php', true); xhr.onload = function () { if (this.status == 200) { var DB_response = JSON.parse(this.responseText); for (let i in DB_response) { let tstArr1_from_db = DB_response[i].tstArr1; let tstArr2_from_db = DB_response[i].tstArr2; newArray.push(DB_response[i].tstName, tstArr1_from_db, tstArr2_from_db); } } console.table(originalArray); // console.log(originalArray[1][1][1]); // for console.table(newArray); // debugging console.log(newArray[1][1][1]); // } xhr.send(); }

La consola muestra:
ingrese la descripción de la imagen aquí

Lo "indefinido" es obvio.

¿Cómo puedo hacer que newArray sea una matriz multidimensional como la original?

Gracias, gente inteligente.

(Por favor, por favor... sin jquery)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Supongo que su respuesta es texto, por lo que los datos son 'Apple, Banana, Carrot, Yike' y '25, 317, 2' para la primera fila, luego debe dividir la cadena en una matriz.

 var originalArray = [ ['t00', ['Apple', 'Banana', 'Carrot', 'Yike'], [25, 317, 2]], ['t01', ['Mozart', 'Beethoven'], [2, 30, 9, 77, 1, 20]] ]; //assumed your response have this structure var DB_response = [ {tstName:'t00', tstArr1:'Apple, Banana, Carrot, Yike', tstArr2:'25, 317, 2'}, {tstName:'t01', tstArr1:'Mozart,Beethoven', tstArr2:'2, 30, 9, 77, 1, 20'} ]; function test() { var newArray = []; DB_response.forEach(function(db) { field1 = db.tstName; field2 = db.tstArr1.split(',').map(function(s) {return s.trim()}) field3 = db.tstArr2.split(',').map(function(s) {return s.trim()}) newArray.push([field1,field2,field3]); }) console.log(originalArray,newArray); }
 <button onclick='test()'>Test</buton>

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