Iterator : méthode map()
Baseline
2025
Newly available
Depuis March 2025, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La méthode map() des instances de Iterator retourne un nouvel objet d'aide à l'itérateur qui produit les éléments de l'itérateur, chacun transformé par une fonction de mappage.
Syntaxe
map(callbackFn)
Paramètres
callbackFn-
Une fonction à exécuter pour chaque élément produit par l'itérateur. Elle retourne la valeur qui sera produite par l'objet d'aide à l'itérateur. La fonction est appelée avec les arguments suivants :
Valeur de retour
Un nouvel objet d'aide à l'itérateur. Chaque fois que la méthode next() de l'objet d'aide à l'itérateur est appelée, elle obtient l'élément suivant de l'itérateur sous-jacent, applique callbackFn et renvoie la valeur retournée. Lorsque l'itérateur sous-jacent est terminé, l'objet d'aide à l'itérateur est également terminé (la méthode next() produit { value: undefined, done: true }).
Description
Le principal avantage des objets d'aide à l'itérateur par rapport aux méthodes de tableau est qu'ils sont paresseux, ce qui signifie qu'ils ne produisent la valeur suivante que lorsqu'elle est demandée. Cela évite les calculs inutiles et permet également de les utiliser avec des itérateurs infinis. La méthode map() permet de créer un nouvel itérateur qui, lorsqu'il est itéré, produit des éléments transformés.
Exemples
>Utiliser la méthode map()
L'exemple suivant crée un itérateur qui produit les termes de la suite de Fibonacci, le transforme en une nouvelle suite avec chaque terme au carré, puis lit les premiers termes :
function* fibonacci() {
let actuel = 1;
let suivant = 1;
while (true) {
yield actuel;
[actuel, suivant] = [suivant, actuel + suivant];
}
}
const seq = fibonacci().map((x) => x ** 2);
console.log(seq.next().value); // 1
console.log(seq.next().value); // 1
console.log(seq.next().value); // 4
Utiliser map() avec une boucle for...of
map() est le plus pratique lorsque vous ne créez pas manuellement l'itérateur. Comme les itérateurs sont également itérables, vous pouvez itérer sur l'objet d'aide retourné avec une boucle for...of :
for (const n of fibonacci().map((x) => x ** 2)) {
console.log(n);
if (n > 30) {
break;
}
}
// Affiche :
// 1
// 1
// 4
// 9
// 25
// 64
Ceci est équivalent à :
for (const n of fibonacci()) {
const n2 = n ** 2;
console.log(n2);
if (n2 > 30) {
break;
}
}
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-iterator.prototype.map> |