Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La méthode flatten() permet de créer un nouveau tableau contenant les éléments de des sous-tableaux du tableau passé en argument, qui sont concaténés récursivement pour atteindre une profondeur donnée.

Note : Le nom de cette méthode est en cours de discussion en raison de problèmes de compatibilité web. Voir bug 1443630 et tc39/proposal-flatMap#56.

Syntaxe

var nouveauTableau = monTableau.flatten(profondeur)

Paramètres

profondeur Facultatif
Le niveau de profondeur en termes d'imbrication de tableau. Autrement dit, jusqu'à quel niveau d'imbrication un tableau imbriqué doit il être aplati. La valeur par défaut est 1.

Valeur de retour

Un nouveau tableau qui contient la concaténation des éléments des sous-tableaux du tableau passé en argument.

Exemples

Aplatir des tableaux imbriqués

var arr1 = [1, 2, [3, 4]];
arr1.flatten(); 
// [1, 2, 3, 4]

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flatten();
// [1, 2, 3, 4, [5, 6]]

var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flatten(2);
// [1, 2, 3, 4, 5, 6]

Aplatir et combler les trous

La méthode flatten() permet également de retirer les « trous » d'un tableau :

var arr4 = [1, 2, , 4, 5];
arr4.flatten();
// [1, 2, 4, 5]
//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

Equivalent

reduce et concat

var arr1 = [1, 2, [3, 4]];
arr1.flatten();
// est équivalent à
arr1.reduce((acc, val) => acc.concat(val), []);
// [1, 2, 3, 4]

Spécifications

Spécification État Commentaires
Array.prototype.flatten proposal Brouillon  

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple Non Non Non1 Non Non Non
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple Non Non Non Non1 Non Non Non

1. Available in Firefox Nightly only. See bug 1435813 for status on enabling this by default.

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, Baptistou
 Dernière mise à jour par : SphinxKnight,