JavaScriptTableaux

Array.prototype.flatMap()

Mappe chaque élément et aplatit le résultat d’un niveau.

Renvoie
Un nouveau tableau avec les résultats, aplati d’un niveau.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const courses = [
  { name: 'HTML', tags: ['web', 'bases'] },
  { name: 'Python', tags: ['données', 'ia'] }
]

console.log(courses.flatMap((course) => course.tags))
Console
['web', 'bases', 'données', 'ia']

Définition et utilisation

#

La méthode flatMap() combine map() et flat() en une seule étape. La fonction peut renvoyer un tableau, et ses éléments seront insérés directement dans le résultat.

Un élément peut ainsi se transformer en plusieurs éléments, ou en aucun (quand la fonction renvoie un tableau vide). C’est un moyen pratique de transformer et filtrer des données en même temps.

L’aplatissement ne porte que sur un niveau. Si la fonction renvoie des tableaux imbriqués plus profondément, le reste reste imbriqué.

Syntaxe

#
Syntaxe
array.flatMap(callbackFn)
array.flatMap(callbackFn, thisArg)

Paramètres

#
  • callbackFn

    function (element, index, array)

    Fonction qui renvoie une valeur ou un tableau de valeurs.
  • thisArg

    optionnel

    Valeur de this à l’intérieur de la fonction.

Plus d’exemples

#
Mapper et filtrer en même temps
JavaScript
const inputs = ['12', 'abc', '7', '']
const numbers = inputs.flatMap((value) => {
  const n = Number.parseInt(value, 10)
  return Number.isNaN(n) ? [] : [n]
})

console.log(numbers)
Console
[12, 7]

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Renvoyer [] depuis la fonction supprime l’élément du résultat, et [a, b] transforme un élément en deux.
  • Quand vous n’avez pas besoin d’aplatissement, un simple map() est plus clair.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.