| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/flat | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
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.
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]
flat()
flat(depth)
depth FacultatifLe niveau de profondeur qui dfinit jusqu' quel point une structure de tableaux imbriqus doit tre aplatie. La valeur par dfaut est 1.
Un nouveau tableau avec les lments des sous-tableaux concatns.
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.
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]
flat() sur des tableaux creuxLa mthode flat() retire les cases vides dans les tableaux :
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 ]
flat() sur des objets qui ne sont pas des tableauxLa 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.
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 ]
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.flat |
ArrayArray.prototype.concat()Array.prototype.flatMap()Array.prototype.map()Array.prototype.reduce()Array.prototype.flat dans core-js (angl.)Array.prototype.flat (angl.)Cette page a t modifie le 6 nov. 2025 par les contributeurices du MDN.
Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.iterator]()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |