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

javascriptlet 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ň:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem) {
  return elem * 2;
});

console.log(res);

Kodyň işleniş netijesi:

javascript[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:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem, indeks) {
  return elem * indeks;
});

console.log(res);

Kodyň işleniş netijesi:

javascript[0, 2, 6, 12, 20]

Mysal

Gerek bolsa, üçünji parametre massiwiň özüni geçirip bolýar:

javascriptlet 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:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

Geliň bu massiw üçin map ulanyp, onuň elementlerini konsola çykaralyň:

javascriptlet 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ň:

javascriptlet 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);

Şeýle-de serediň

  • forEach metodi,
    massiwdäki her bir element üçin funksiýany ulanýar
  • filter metodi,
    massiw elementlerini süzgüçden geçirmäge mümkinçilik berýär
  • some we every metodlary,
    massiwi barlamagy ýerine ýetirýär
  • reduce we reduceRight metodlary,
    massiwi bir baha çenli ýygnýar