Metod filter

Metod filter massiw elementlerini belli bir şert boýunça diňe gabat gelýän elementleri galdyryp, filtirlemäge mümkinçilik berýär. Metod parametrinde her bir massiw elementi üçin ýerine ýetiriler funksiýany alyr. Metod öz netijesi hökmünde täze massiw gaýtaryp berýär, ona diňe üpjün edilen funksiýanyň true gaýtarjak elementleri girer.

Funksiýa üç parametr üpjün edilip bilner. Eger bu parametrler bar bolsa (olara hökman däl), onda birinjisine awtomatiki massiw elementi düşer, ikinjisine onuň massiwdaki nomeri (indeksi) düşer, üçünjüsine bolsa massiw özi düşer.

Sintaksis

javascriptlet täze massiw = massiw.filter(function(element, indeks, massiw) {
  kod
  return true ýa-da false
});

Mysal

Geliň massiwy filtirleýäli we onda diňe pozitiw sanlary galdyraly:

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

let res = arr.filter(function(elem) {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Kodyň ýerine ýetiriliş netijesi:

javascript[5, 1, 1, 3, 4]

Mysal

Kody ok funksiýasyndan peýdalanyp gysgaldyraly:

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

let res = arr.filter(elem => {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Kodyň ýerine ýetiriliş netijesi:

javascript[5, 1, 1, 3, 4]

Mysal

Kody mantiky amallaryny gysgaldyşyndan peýdalanyp gysgaldyraly:

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

let res = arr.filter(elem => {
  return elem >= 0;
});

console.log(res);

Kodyň ýerine ýetiriliş netijesi:

javascript[5, 1, 1, 3, 4]

Mysal

Kody ok funksiýalarynyň aýratynlyklaryndan peýdalanyp gysgaldyraly:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);

console.log(res);

Kodyň ýerine ýetiriliş netijesi:

javascript[5, 1, 1, 3, 4]

Mysal

Gerek bolsa, üçünji parametre massiw özüni üpjün edip bilersiňiz:

javascriptlet res = arr.filter(function(elem, index, arr) {
  şu ýerde massiw arr elýeterli bolar
});

Şeýle hem göz aýlaň

  • metodlar map we forEach,
    olar massiwüň her bir elementine funksiýany ýerine ýetirmäge mümkinçilik berýär
  • metodlar some we every,
    massiwy barlamagy ýerine ýetirýär
  • metodlar reduce we reduceRight,
    massiwy bir bahada ýygnamak (collapse) üçin