Metodas filter

Metodas filter leidžia išfiltruoti masyvo elementus, paliekant tik tuos, kurie atitinka tam sąlygas. Metodas parametruose gauna funkciją, kuri bus vykdyta kiekvienam masyvo elementui. Metodas grąžina naują masyvą, į kurį pateks tik tie elementai, kuriems perduota funkcija grąžins true.

Į funkciją galima perduoti tris parametrus. Jei šie parametrai yra (jie nėra privalomi), tada pirmasis automatiškai gaus masyvo elementą, antrasis gaus jo numerį masyve (indeksą), o trečiasis - patį masyvą.

Sintaksė

javascriptlet naujasMasyvas = masyvas.filter(function(elementas, indeksas, masyvas) {
  kodas
  return true arba false
});

Pavyzdys

Išfiltruokime masyvą, palikdami jame tik teigiamus skaičius:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sutrumpinkime kodą, pasinaudoję rodykline funkcija:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sutrumpinkime kodą, pasinaudoję loginių operacijų sutrumpinimais:

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

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

console.log(res);

Kodo vykdymo rezultatas:

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

Pavyzdys

Sutrumpinkime kodą, pasinaudoję rodyklių funkcijų ypatumais:

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

console.log(res);

Kodo vykdymo rezultatas:

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

Pavyzdys

Jei reikia, į trečią parametrą galima perduoti patį masyvą:

javascriptlet res = arr.filter(function(elem, index, arr) {
  čia bus prieinamas masyvas arr
});

Taip pat žiūrėkite

  • metodai map ir forEach,
    kurie leidžia pritaikyti funkciją kiekvienam masyvo elementui
  • metodai some ir every,
    atliekantys masyvo patikrinimą
  • metodai reduce ir reduceRight,
    susukantys masyvą į vieną reikšmę