Metoda map
Metoda map permite aplicarea unei funcții
date pentru fiecare element al array-ului. În
același timp, metoda nu modifică array-ul original, ci
returnează unul modificat.
Metoda primește ca parametru o funcție, care
se va executa pentru fiecare element al array-ului.
Ceea ce returnează această funcție prin return
pentru elementul array-ului, va deveni noua valoare
a acestui element (vezi exemplele).
În funcție pot fi transmise 3 parametri.
Dacă acești parametri există (nu sunt obligatorii),
atunci în primul va intra automat elementul
array-ului, în al doilea va intra numărul său în array
(indexul), iar în al treilea - însuși array-ul.
Sintaxă
let array nou = array.map(function(element, index, array) {
cod
return element modificat;
});
Exemplu
Să creăm un array, fiecare element al căruia este de două ori mai mare decât elementul corespunzător din array-ul inițial:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Rezultatul executării codului:
[2, 4, 6, 8, 10]
Exemplu
Să creăm un array, fiecare element al căruia se obține astfel - valoarea elementului este înmulțită cu numărul său de ordine în array:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Rezultatul executării codului:
[0, 2, 6, 12, 20]
Exemplu
La nevoie, în al treilea parametru poate fi transmis însuși array-ul:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
aici va fi accesibil array-ul arr
});
Exemplu
Metoda map poate fi utilizată și pentru
parcurgerea array-urilor multidimensionale. Să presupunem, de exemplu,
că este dat următorul array:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Să parcurgem acest array prin
map și să afișăm elementele sale în consolă:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Ca rezultat, console.log va afișa [1,
2, 3], apoi [4, 5, 6], apoi
[7, 8, 9].
După cum vedeți, în variabila elem intră
subarray-uri. Să aplicăm acum metoda
map fiecărui subarray și să ridicăm
fiecare element al său la pătrat:
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);