map методу
map методу массивдин ар бир элементи үчүн
белгиленген функцияны колдонууга мүмкүндүк берет.
Бул учурда метод баштапкы массивди өзгөртпөйт,
тескерисинче өзгөртүлгөн массивди кайтарат.
Метод параметр катары массивдин ар бир элементи
үчүн ишке ашырыла турган функцияны алат.
Бул функциянын return аркылуу массив элементи
үчүн кайтарып бергени, ошол элементтин жаңы
мааниси болуп калат (мисалдарды караңыз).
Функцияга 3 параметр берүүгө болот.
Эгерде бул параметрлер бар болсо (алар милдеттүү
эмес), анда биринчиси автоматтык түрдө массивдин
элементине, экинчиси анын массивдеги номуруна
(индексине), үчүнчүсү массивдин өзүнө түшөт.
Синтаксис
let жаңы массив = массив.map(function(элемент, индекc, массив) {
код
return өзгөртүлгөн элемент;
});
Мисал
Ар бир элементи баштапкы массивдин тиешелүү элементинен эки эсе чоң болгон массив түзөлү:
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 методу көлдөмдүү массивдерди
кайталоо үчүн да колдонсо болот. Мисалы, төмөнкү
массив берилсин:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Келгиле, бул массивди map аркылуу
кайталап, анын элементтерин консолго чыгаралы:
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] чыгарат.
Көрүп турганыңыздай, 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);