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

javascriptlet 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:

javascriptlet 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:

javascript[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:

javascriptlet 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:

javascript[0, 2, 6, 12, 20]

Nümunə

Lazım olduqda üçüncü parametrə massivin özü ötürülə bilər:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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);

Həmçinin bax

  • metod forEach,
    massivin hər bir elementi üçün funksiyanı tətbiq edir
  • metod filter,
    massiv elementlərini süzməyə imkan verir
  • metodlar some və every,
    massivin yoxlanışını yerinə yetirir
  • metodlar reduce və reduceRight,
    massivi bir qiymətə endirir