Metode map
Metode map ļauj piemērot doto
funkciju katram masīva elementam.
Šī metode nemaina sākotnējo masīvu, bet
atgriež modificēto.
Metode parametrā saņem funkciju, kas
tiks izpildīta katram masīva elementam.
Tas, ko šī funkcija atgriezīs caur return
masīva elementam, kļūs par šī elementa jauno vērtību
(sk. piemērus).
Funkcijai var nodot 3 parametrus.
Ja šie parametri ir (tie nav obligāti),
tad pirmajā automātiski nonāks elements
no masīva, otrajā nonāks tā kārtas numurs masīvā
(indekss), bet trešajā - pats masīvs.
Sintakse
let jaunais_masivs = masivs.map(function(elements, indekss, masivs) {
kods
return mainits_elements;
});
Piemērs
Izveidosim masīvu, kurā katrs elements ir divreiz lielāks par atbilstošo elementu sākotnējā masīvā:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Koda izpildes rezultāts:
[2, 4, 6, 8, 10]
Piemērs
Izveidosim masīvu, kurā katrs elements tiek iegūts šādi - elementa vērtība tiek reizināta ar tā kārtas numuru masīvā:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Koda izpildes rezultāts:
[0, 2, 6, 12, 20]
Piemērs
Ja nepieciešams, trešajā parametrā var padot pašu masīvu:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
šeit būs pieejams masīvs arr
});
Piemērs
Metodi map var izmantot arī
daudzdimensiju masīvu apstaigāšanai. Pieņemsim, ka, piemēram,
ir dots šāds masīvs:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Apstaigāsim šo masīvu ar
map un izvadīsim tā elementus konsolē:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Rezultātā console.log izvadīs [1,
2, 3], tad [4, 5, 6], tad
[7, 8, 9].
Kā redzat, mainīgajā elem nonāk
podmasīvi. Tagad piemērosim metodi
map katram podmasīvam un kāpināsim
katru tā elementu kvadrātā:
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);