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