Map методи
map методи массивнинг ҳар бир
элементи учун белгиланган функцини
қўллаш имконини беради. Бу методи
асл массивни ўзгартирмай, ўзгартирилган
массивни қайтаради.
Метод параметр сифатида массивнинг ҳар бир
элементи учун бажариладиган функцини олади.
Ушбу функция return орқали массив
элементи учун қайтарган нарса, ўша элементнинг
янги қиймати бўлади (мисолларни кўринг).
Функцияга 3 параметр бериш мумкин.
Aгар бу параметрлар мавжуд бўлса (улар
majburiy emas), биринчига avtomatik ravishda
массив элементи, иккинчига унинг массивдаги
номери (индекс), учинчига эса массивнинг ўзи
тушади.
Синтаксис
javascriptlet yangi massiv = massiv.map(function(element, index, massiv) {
kod
return o'zgartirilgan element;
});
Мисол
Ҳар бир элементи бошланғич массивнинг мос элементидан икки баробар катта бўлган массив яратамиз:
javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Кодни бажариш натижаси:
javascript[2, 4, 6, 8, 10]
Мисол
Ҳар бир элементи шундай олинадиган массив яратамиз - элементнинг қиймати унинг массивдаги тартиб рақамига кўпайтирилади:
javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Кодни бажариш натижаси:
javascript[0, 2, 6, 12, 20]
Мисол
Зарурат бўлган тақдирда учинчи параметрга массивнинг ўзини бериш мумкин:
javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
бу ерда arr массив мавжуд бўлади
});
Мисол
map методини кўп ўлчовли массивларни
aйлаш учун ҳам қўллаш мумкин. Масалан, бизга
буйондaг массив берилган бўлсин:
javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Келинг, бу массивни map орқали
aйлаб, унинг элементларини консольга чиқарамиз:
javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Натижада console.log аввал [1,
2, 3] ни, кейин [4, 5, 6] ни, кейин
эса [7, 8, 9] ни чиқаради.
Кўриб turganingizdek, elem ўзгарувчисига
қисм массивлар тушмокда. Энди map
методини ҳар бир қисм массивга қўллаймиз ва
унинг ҳар бир элементани квадратга кўтарамиз:
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);