38

Arrays multidimensionales en JavaScript

Tres soluciones diferentes para combinar arrays multidimensional en un sola arrays.

Estas son las tres formas conocidas para fusionar arrays multidimensional en una sola arrays.

Dado el array:

var myArray = [[1, 2],[3, 4, 5], [6, 7, 8, 9]];

Queremos tener este resultado:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Solucion 1: usando concat() y apply()

var myNewArray = [].concat.apply([], myArray);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

Solucion 2: usando reduce()

var myNewArray = myArray.reduce(function(prev, curr) {
  return prev.concat(curr);
});
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

Solucion 3:

var myNewArray3 = [];
for (var i = 0; i < myArray.length; ++i) {
  for (var j = 0; j < myArray[i].length; ++j)
    myNewArray3.push(myArray[i][j]);
}
console.log(myNewArray3);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

Echar un vistazo here estos 3 algoritmos en accion.

Para array infinitamente anidado probar Underscore flatten().

Si tiene curiosidad por la performance, here.