Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

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

Array.prototype.flatMap()

BaselineWidely available

La méthodeflatMap() permet d'appliquer une fonction à chaque élément du tableau puis d'aplatir le résultat en un tableau. Cela correspond à l'enchaînement deArray.prototype.map() suivi deArray.prototype.flat() de profondeur 1.flatMap est plus efficace que la combinaison de ces deux opérations, souvent réalisées conjointement.

Syntaxe

js
var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {    // return element for new_array}[, thisArg])

Paramètres

callback

La fonction qui produit un élément du nouveau tableau et qui prend trois arguments :

currentValue

La valeur du tableau qui est traitée.

indexFacultatif

L'indice de l'élément du tableau qui est traitée.

arrayFacultatif

Le tableau sur lequelflatMap a été appelée.

thisArgFacultatif

La valeur à utiliser comme contextethis lors de l'exécution decallback.

Valeur de retour

Un nouveau tableau composé d'éléments résultants de la fonction de rappel (callback) et aplati d'un niveau de profondeur.

Description

Pour la fonction de rappel, voirArray.prototype.map(). La méthodeflatMap() est identique à un appel deArray.prototype.map() suivi d'un appel deArray.prototype.flat() avec la profondeur 1.

Exemples

map() etflatMap()

js
var arr1 = [1, 2, 3, 4];arr1.map((x) => [x * 2]);// [[2], [4], [6], [8]]arr1.flatMap((x) => [x * 2]);// [2, 4, 6, 8]// seul un niveau est aplatiarr1.flatMap((x) => [[x * 2]]);// [[2], [4], [6], [8]]

On peut utiliser un autre exemple où on génère une liste de mots à partir d'une liste de phrases :

js
let tableau1 = ["Coucou comment", "", "ça va ?"];tableau1.map((x) => x.split(" "));// [["Coucou", "comment"], [""], ["ça", "va", "?"]]tableau1.flatMap((x) => x.split(" "));// ["Coucou", "comment", "", "ça", "va", "?"]

On notera que la longueur de la liste obtenue avecflatMap est différente de la longueur de la liste originale.

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

Équivalent

reduce() etconcat()

js
var arr = [1, 2, 3, 4];arr.flatMap((x) => [x, x * 2]);// est équivalent àarr.reduce((acc, x) => acc.concat([x, x * 2]), []);// [1, 2, 2, 4, 3, 6, 4, 8]

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.flatmap

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp