Méthode map
La méthode map permet d'appliquer une fonction donnée
à chaque élément d'un tableau. Cependant, la méthode
ne modifie pas le tableau original, mais
retourne le tableau modifié.
La méthode reçoit en paramètre une fonction, qui
s'exécutera pour chaque élément du tableau.
Ce que cette fonction retourne via return
pour un élément du tableau deviendra la nouvelle valeur
de cet élément (voir les exemples).
On peut passer 3 paramètres à la fonction.
Si ces paramètres sont présents (ils ne sont pas obligatoires),
alors le premier recevra automatiquement l'élément
du tableau, le deuxième recevra son numéro dans le tableau
(l'index), et le troisième - le tableau lui-même.
Syntaxe
let nouveau_tableau = tableau.map(function(element, index, tableau) {
code
return element_modifie;
});
Exemple
Créons un tableau dont chaque élément est le double de l'élément correspondant dans le tableau initial :
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Résultat de l'exécution du code :
[2, 4, 6, 8, 10]
Exemple
Créons un tableau dont chaque élément est obtenu comme suit - la valeur de l'élément est multipliée par son numéro d'ordre dans le tableau :
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Résultat de l'exécution du code :
[0, 2, 6, 12, 20]
Exemple
Si nécessaire, on peut passer le tableau lui-même en troisième paramètre :
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
// le tableau arr sera accessible ici
});
Exemple
La méthode map peut également être utilisée pour
parcourir des tableaux multidimensionnels. Supposons, par exemple,
que nous ayons le tableau suivant :
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Parcourons ce tableau avec
map et affichons ses éléments dans la console :
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
En conséquence, console.log affichera [1,
2, 3], puis [4, 5, 6], puis
[7, 8, 9].
Comme vous le voyez, la variable elem reçoit
les sous-tableaux. Appliquons maintenant la méthode
map à chaque sous-tableau et mettons chaque
élément au carré :
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
return elem.map(function(num) {
return num * num;
});
});
console.log(result);