From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../global_objects/array/flatmap/index.md | 141 ++++++++++----------- 1 file changed, 65 insertions(+), 76 deletions(-) (limited to 'files/fr/web/javascript/reference/global_objects/array/flatmap') diff --git a/files/fr/web/javascript/reference/global_objects/array/flatmap/index.md b/files/fr/web/javascript/reference/global_objects/array/flatmap/index.md index 4117829f18..1c95114d1d 100644 --- a/files/fr/web/javascript/reference/global_objects/array/flatmap/index.md +++ b/files/fr/web/javascript/reference/global_objects/array/flatmap/index.md @@ -10,111 +10,100 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/flatMap original_slug: Web/JavaScript/Reference/Objets_globaux/Array/flatMap --- -
{{JSRef}}
+{{JSRef}} -

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

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

Syntaxe

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

Paramètres

+### 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.
-
index{{optional_inline}}
-
L'indice de l'élément du tableau qui est traitée.
-
array{{optional_inline}}
-
Le tableau sur lequel flatMap a été appelée.
-
-
-
thisArg{{optional_inline}}
-
La valeur à utiliser comme contexte this lors de l'exécution de callback.
-
+- `callback` -

Valeur de retour

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

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

+ - `currentValue` + - : La valeur du tableau qui est traitée. + - `index`{{optional_inline}} + - : L'indice de l'élément du tableau qui est traitée. + - `array`{{optional_inline}} + - : Le tableau sur lequel `flatMap` a été appelée. -

Description

+- `thisArg`{{optional_inline}} + - : La valeur à utiliser comme contexte `this` lors de l'exécution de `callback`. -

Pour la fonction de rappel, voir {{jsxref("Array.prototype.map()")}}. La méthode flatMap() est identique à un appel de {{jsxref("Array.prototype.map()")}} suivi d'un appel de {{jsxref("Array.prototype.flat()")}} avec la profondeur 1.

+### Valeur de retour -

Exemples

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

map() et flatMap()

+## Description -
var arr1 = [1, 2, 3, 4];
+Pour la fonction de rappel, voir {{jsxref("Array.prototype.map()")}}. La méthode `flatMap()` est identique à un appel de {{jsxref("Array.prototype.map()")}} suivi d'un appel de {{jsxref("Array.prototype.flat()")}} avec la profondeur 1.
 
-arr1.map(x => [x * 2]);
+## Exemples
+
+### `map()` et `flatMap()`
+
+```js
+var arr1 = [1, 2, 3, 4];
+
+arr1.map(x => [x * 2]);
 // [[2], [4], [6], [8]]
 
-arr1.flatMap(x => [x * 2]);
+arr1.flatMap(x => [x * 2]);
 // [2, 4, 6, 8]
 
 // seul un niveau est aplati
-arr1.flatMap(x => [[x * 2]]);
+arr1.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 :

+On peut utiliser un autre exemple où on génère une liste de mots à partir d'une liste de phrases : -
let tableau1 = ["Coucou comment", "", "ça va ?"];
+```js
+let tableau1 = ["Coucou comment", "", "ça va ?"];
 
-tableau1.map(x => x.split(" "));
+tableau1.map(x => x.split(" "));
 // [["Coucou", "comment"], [""], ["ça", "va", "?"]]
 
-tableau1.flatMap(x => x.split(" "));
+tableau1.flatMap(x => x.split(" "));
 // ["Coucou", "comment", "", "ça", "va", "?"]
-
+``` -

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

+On notera que la longueur de la liste obtenue avec `flatMap` est différente de la longueur de la liste originale. -
//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
+ //=> [1, 2, 3, 4, 5, 6, 7, 8, 9] -

Équivalent

+## Équivalent -

reduce() et concat()

+### `reduce()` et `concat()` -
var arr = [1, 2, 3, 4];
+```js
+var arr = [1, 2, 3, 4];
 
-arr.flatMap(x => [x, x * 2]);
+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

- - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
ECMAScript 2019FinaliséProposition initiale
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.Array.flatMap")}}

- -

Voir aussi

- - +arr.reduce((acc, x) => acc.concat([x, x * 2]), []); +// [1, 2, 2, 4, 3, 6, 4, 8] +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------------------------- | -------- | -------------------- | +| [ECMAScript 2019](https://www.ecma-international.org/ecma-262/10.0/index.html#sec-array.prototype.flatmap) | Finalisé | Proposition initiale | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.Array.flatMap")}} + +## Voir aussi + +- {{jsxref("Array.prototype.flat()")}} +- {{jsxref("Array.prototype.map()")}} +- {{jsxref("Array.prototype.reduce()")}} +- {{jsxref("Array.prototype.concat()")}} -- cgit v1.2.3-54-g00ecf