Entonces, estoy trabajando con una matriz de matrices como esta:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];Para mi problema de ejemplo, solo puedo acceder a los elementos individuales usando un bucle anidado, me gustaría poder (si es posible) usar un solo bucle, usando la desestructuración para acceder a los elementos individuales de cada subconjunto
Ejemplo (sé que esto funciona un poco, pero no según lo previsto): necesito acceso a cada elemento. Y tiene que ser flexible. En caso de que esté trabajando con matrices de diferentes tamaños. (3 x 3 o 4 x 4, etc.) Escribir el1, el2, el3 no sería flexible para matrices de otros tamaños
arrOfArrs.forEach(([el1, el2, el3]) => console.log(el1));Arriba, la consola registraría cada primer el de cada subconjunto: el ejemplo el1 registraría: 1, 4, 7. Me gustaría obtener el elemento individual 1, luego 2, 3, 4, etc. Y poder recorrerlo todo. es posible?
¡Muchas gracias por tu ayuda!
Puedes usar solo Array#flat()
Código:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] const destructuredArray = arrOfArrs.flat() console.log(destructuredArray)Puede mapear sus matrices principales y distribuir cada una de ellas en una nueva matriz de contenedores, así:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; const destructuredArray = [] arrOfArrs.map(array => destructuredArray.push(...array)) console.log(destructuredArray)¿Es este el tipo de cosa que estás buscando?
Para acceder verdaderamente a cada elemento en un solo bucle , primero debe aplanar la matriz como se hace aquí: https://stackoverflow.com/a/10865042/6127393
En el fragmento a continuación, estoy iterando directamente el resultado de la matriz aplanada sin almacenarlo en una nueva variable (básicamente un 'one-liner').
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; [].concat.apply([], arrOfArrs).forEach(one => { console.log(one) });