[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/flat [Back]  [Original]

Array : mthode flat() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Array : mthode flat()

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis janvier 2020.

La mthode flat() des instances de Array cre un nouveau tableau dans lequel tous les lments des sous-tableaux sont concatns rcursivement jusqu' la profondeur dfinie.

Dans cet article

Exemple interactif

const arr1 = [0, 1, 2, [3, 4]];

console.log(arr1.flat());
// sortie attendue : Array [0, 1, 2, 3, 4]

const arr2 = [0, 1, [2, [3, [4, 5]]]];

console.log(arr2.flat());
// sortie attendue : Array [0, 1, 2, Array [3, Array [4, 5]]]

console.log(arr2.flat(2));
// sortie attendue : Array [0, 1, 2, 3, Array [4, 5]]

console.log(arr2.flat(Infinity));
// sortie attendue : Array [0, 1, 2, 3, 4, 5]

Syntaxe

js
flat()
flat(depth)

Paramtres

depth Facultatif

Le niveau de profondeur qui dfinit jusqu' quel point une structure de tableaux imbriqus doit tre aplatie. La valeur par dfaut est 1.

Valeur de retour

Un nouveau tableau avec les lments des sous-tableaux concatns.

Description

La mthode flat() est une mthode de copie. Elle ne modifie pas this mais renvoie une copie superficielle qui contient les mmes lments que ceux du tableau d'origine.

La mthode flat() retire les cases vides si le tableau aplatir est creux. Par exemple, si depth vaut 1, les cases vides du tableau racine et du premier niveau des tableaux imbriqus sont ignores, mais les cases vides des niveaux plus profonds sont conserves avec les tableaux eux-mmes.

La mthode flat() est gnrique. Elle attend seulement que la valeur de this possde une proprit length et des proprits cls entires. Cependant, ses lments doivent tre des tableaux pour tre aplatis.

Exemples

Aplatir des tableaux imbriqus

js
const arr1 = [1, 2, [3, 4]];
arr1.flat();
// [1, 2, 3, 4]

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

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

const arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
arr4.flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Utiliser flat() sur des tableaux creux

La mthode flat() retire les cases vides dans les tableaux :

js
const arr5 = [1, 2, , 4, 5];
console.log(arr5.flat()); // [1, 2, 4, 5]

const array = [1, , 3, ["a", , "c"]];
console.log(array.flat()); // [ 1, 3, "a", "c" ]

const array2 = [1, , 3, undefined, ["a", , ["d", , "e"]], null];
console.log(array2.flat()); // [ 1, 3, undefined, "a", ["d", vide, "e"], null ]
console.log(array2.flat(2)); // [ 1, 3, undefined, "a", "d", "e", null ]

Utiliser flat() sur des objets qui ne sont pas des tableaux

La mthode flat() lit la proprit length de this puis accde chaque proprit dont la cl est un entier non ngatif infrieur length. Si l'lment n'est pas un tableau, il est ajout directement au rsultat. Si l'lment est un tableau, il est aplati selon le paramtre depth.

js
const objetSimilaireTableau = {
  length: 3,
  0: [1, 2],
  // Les objets qui ressemblent  des tableaux ne sont pas aplatis
  1: { length: 2, 0: 3, 1: 4 },
  2: 5,
  3: 3, // ignor par flat() car length vaut 3
};
console.log(Array.prototype.flat.call(objetSimilaireTableau));
// [ 1, 2, { '0': 3, '1': 4, length: 2 }, 5 ]

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-array.prototype.flat

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page