JavaScript Matrices d'aplatissement


Exemple

Tableaux à 2 dimensions

6

Dans ES6, nous pouvons aplatir le tableau par l'opérateur de propagation ... :

function flattenES6(arr) {
  return [].concat(...arr);
}

var arrL1 = [1, 2, [3, 4]];
console.log(flattenES6(arrL1)); // [1, 2, 3, 4]
5

Dans ES5, nous pouvons y arriver par .apply () :

function flatten(arr) {
  return [].concat.apply([], arr);
}

var arrL1 = [1, 2, [3, 4]];
console.log(flatten(arrL1)); // [1, 2, 3, 4]

Tableaux de dimension supérieure

Étant donné un tableau profondément imbriqué comme ça

var deeplyNested = [4,[5,6,[7,8],9]];

Il peut être aplati avec cette magie

console.log(String(deeplyNested).split(',').map(Number);
#=> [4,5,6,7,8,9]

Ou

const flatten = deeplyNested.toString().split(',').map(Number)
console.log(flatten);
#=> [4,5,6,7,8,9]

Les deux méthodes ci-dessus ne fonctionnent que lorsque le tableau est composé exclusivement de nombres. Un tableau multidimensionnel d'objets ne peut pas être aplati par cette méthode.