Map metodu
map metodu massivin hər bir elementi üçün
müəyyən edilmiş funksiyanı tətbiq etməyə imkan verir.
Bu zaman metod orijinal massivi dəyişmir, əksinə
dəyişdirilmiş massivi qaytarır.
Metod parametrdə massivin hər bir elementi üçün
işləyəcək funksiyanı qəbul edir. Bu funksiyanın
return vasitəsilə massiv elementi üçün qaytaracağı
dəyər həmin elementin yeni qiyməti olacaq (nümunələrə baxın).
Funksiyaya 3 parametr ötürülə bilər.
Əgər bu parametrlər mövcuddursa (onlar məcburi deyil),
onda birincisinə avtomatik olaraq massiv elementi,
ikincisinə onun massivdəki nömrəsi (indeks),
üçüncüsünə isə - massivin özü düşəcək.
Sintaksis
let yeni massiv = massiv.map(function(element, indeks, massiv) {
kod
return deyisilmis element;
});
Nümunə
Hər bir elementi başlanğıc massivin müvafiq elementindən iki dəfə böyük olan massiv yaradaq:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Kodun icrasının nəticəsi:
[2, 4, 6, 8, 10]
Nümunə
Hər bir elementi belə alınan massiv yaradaq - elementin qiyməti onun massivdəki sıra nömrəsinə vurulur:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Kodun icrasının nəticəsi:
[0, 2, 6, 12, 20]
Nümunə
Lazım olduqda üçüncü parametrə massivin özü ötürülə bilər:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
// burada arr massiv-i elcatandir
});
Nümunə
map metodu çoxölçülü massivlərin
iterationu üçün də istifadə edilə bilər. Məsələn,
tutaq ki, belə bir massiv verilib:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Gəlin bu massivi map vasitəsilə iteration edək
və onun elementlərini konsola çıxaraq:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Nəticədə console.log əvvəlcə [1,
2, 3], sonra [4, 5, 6], daha sonra
[7, 8, 9] çıxardacaq.
Gördüyünüz kimi, elem dəyişəninə
altmassivlər düşür. Gəlin indi hər bir altmassivə
map metodunu tətbiq edək və onun hər bir
elementinin kvadratını götürək:
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);