Методи map
Методи map имкон медиҳад, ки функсияи додашуда
барои ҳар як элемент аз массив татбиқ карда шавад. Дар
ҳоле ки ин метод массивӣ аслиро тағйир намедиҳад, балки
массиви тағйирёфтаро бармегардонад.
Дар параметр, метод функсияеро мегирад, ки
барои ҳар як элемент аз массив иҷро хоҳад шуд.
Он чи ки ин функсия тавассути return
барои элементи массив бармегардонад, арзиши нави
ин элемент хоҳад шуд (ниг. мисолҳо).
Ба функсия метавон 3 параметр дод.
Агар ин параметрҳо мавҷуд бошанд (онҳо ихтиёрӣ нестанд),
пас ба аввалин автоматӣ элемент аз
массив ворид мешавад, ба дуюм рақами он дар массив
ворид мешавад (индекс), ва ба сеюм - худи массив.
Синтаксис
let массивӣ нав = массив.map(function(элемент, индекс, массив) {
код
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);