Map metodi
map metodi massivning har bir elementi uchun
berilgan funksiyani qo'llash imkonini beradi.
Bunda metod asl massivni o'zgartirmaydi, balki
o'zgartirilgan massivni qaytaradi.
Metod parametr sifatida funksiyani qabul qiladi, u
massivning har bir elementi uchun bajariladi.
Ushbu funksiya return orqali massiv elementi
uchun qaytargan narsa, shu elementning yangi qiymatiga
aylanadi (misollarga qarang).
Funksiyaga 3 parametr berish mumkin.
Agar bu parametrlar mavjud bo'lsa (ular majburiy emas),
unda birinchisiga avtomatik ravishda massiv elementi,
ikkinchisiga uning massivdagi tartib raqami
(indeks), uchinchisiga esa massivning o'zi tushadi.
Sintaksis
let yangi massiv = massiv.map(function(element, indeks, massiv) {
kod
return o'zgartirilgan element;
});
Misol
Keling, har bir elementi boshlang'ich massivning mos elementidan ikki baravar katta bo'lgan massiv yaratamiz:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Kodni bajarish natijasi:
[2, 4, 6, 8, 10]
Misol
Keling, har bir elementi quyidagicha olinadigan massiv yaratamiz - element qiymati uning massivdagi tartib raqamiga ko'paytiriladi:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Kodni bajarish natijasi:
[0, 2, 6, 12, 20]
Misol
Agar kerak bo'lsa, uchinchi parametrga massivning o'zini berish mumkin:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
bu yerda arr massivi mavjud bo'ladi
});
Misol
map metodidan ko'p o'lchamli massivlarni
aylantirish uchun ham foydalanish mumkin. Masalan,
quyidagi massiv berilgan bo'lsin:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Keling, bu massivni map orqali aylantirib,
uning elementlarini konsolga chiqaramiz:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Natijada console.log birinchi [1,
2, 3] ni, keyin [4, 5, 6] ni, keyin
[7, 8, 9] ni chiqaradi.
Ko'rib turganingizdek, elem o'zgaruvchisiga
kichik massivlar tushadi. Keling, endi map
metodini har bir kichik massivga qo'llaymiz va
uning har bir elementini kvadratga ko'taramiz:
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);