Map metodi
Map metodi massiwdäki her bir element üçin
kesgitlenen funksiýany ulanyp bolmagyny berýär.
Şol wagt metod başlangyç massiwy üýtgetmeýär, şol
üýtgedilenini gaýtarýar.
Metod parametrynde massiwdäki her bir element
üçin ýerine ýetiriler funksiýany alyşýar.
Bu funksiýanyň massiw elementi üçin return
arkaly gaýtarjak zat şol element üçin täze baha
bolar (mysallara serediň).
Funksiýa 3 parametr geçirip bolýar.
Eger bu parametrler bar bolsa (olara hökman däl),
onda birinjisine awtomatik usulda massiw elementi,
ikinjisine onuň massiwdäki belgisi (indeksi),
üçünjisine bolsa massiwiň özi ýerleşer.
Sintaksis
let täze massiw = massiw.map(function(element, indeks, massiw) {
kod
return üýtgedilen element;
});
Mysal
Her bir elementiniň bahasy başlangyç massiwdäki degişli elementiniň bahasyndan iki esse köp bolan massiw döreteliň:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Kodyň işleniş netijesi:
[2, 4, 6, 8, 10]
Mysal
Her bir elementiniň bahasy şeýle alynýan massiw döreteliň - element bahasy massiwdäki tertip nomerine köpeldilýär:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, indeks) {
return elem * indeks;
});
console.log(res);
Kodyň işleniş netijesi:
[0, 2, 6, 12, 20]
Mysal
Gerek bolsa, üçünji parametre massiwiň özüni geçirip bolýar:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, indeks, arr) {
şu ýerde arr massiw elýeterli bolar
});
Mysal
Map metodi köl ölçegli massiwleri geçmek
üçin hem ulanylyp bilner. Meselem, size şeýle
massiw berlen bolsun:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Geliň bu massiw üçin map ulanyp, onuň
elementlerini konsola çykaralyň:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let netije = arr.map(function(elem) {
console.log(elem);
});
Netijede console.log birinji [1,
2, 3], soňra [4, 5, 6], soňra
bolsa [7, 8, 9] çykarar.
Görşüňiz ýaly, elem üýtgeýjisine işmasiwler
düşýär. Indi her bir işmassiwe map metodyny
ulanyp, onuň her elementiniň kwadratyny alyň:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let netije = arr.map(function(elem) {
return elem.map(function(san) {
return san * san;
});
});
console.log(netije);