Meetod filter

Meetod filter võimaldab filtreerida massiivi elemente, jättes alles ainult need elemendid, mis vastavad teatud tingimusele. Meetod saab parameetrina funktsiooni, mis käivitatakse iga massiivi elemendi puhul. Meetod tagastab uue massiivi, millesse kuuluvad ainult need elemendid, mille puhul etteantud funktsioon tagastab true.

Funktsioonile saab edastada kolm parameetrit. Kui need parameetrid on olemas (need pole kohustuslikud), siis esimesse satub automaatselt massiivi element, teise satub selle järjekorranumber massiivis (indeks) ja kolmandasse - massiiv ise.

Süntaks

javascriptlet uus_massiiv = massiiv.filter(function(element, indeks, massiiv) {
  kood
  return true või false
});

Näide

Filtreerime massiivi, jättes sellesse ainult positiivsed arvud:

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

Koodi täitmise tulemus:

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

Näide

Lühendame koodi, kasutades noolfunktsiooni:

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

Koodi täitmise tulemus:

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

Näide

Lühendame koodi, kasutades loogiliste tehete lühendeid:

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

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

console.log(res);

Koodi täitmise tulemus:

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

Näide

Lühendame koodi, kasutades noolfunktsioonide omadusi:

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

console.log(res);

Koodi täitmise tulemus:

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

Näide

Vajadusel saab kolmanda parameetrina edastada massiivi ise:

javascriptlet res = arr.filter(function(elem, index, arr) {
  siin on kättesaadav massiiv arr
});

Vaata ka

  • meetodid map ja forEach,
    mis võimaldavad rakendada funktsiooni igale massiivi elemendile
  • meetodid some ja every,
    sooritavad massiivi kontrolli
  • meetodid reduce ja reduceRight,
    ahendavad massiivi üheks väärtuseks