Metode filter

Metode filter ļauj filtrēt masīva elementus, atstājot tikai tos, kas atbilst noteiktiem nosacījumiem. Metode kā parametru saņem funkciju, kas tiks izpildīta katram masīva elementam. Metodes rezultātā tiek atgriezts jauns massīvs, kurā iekļausies tikai tie elementi, kuriem padotā funkcija atgriezīs true.

Funkcijai var padot trīs parametrus. Ja šie parametri ir (tie nav obligāti), tad pirmajā automātiski nonāks elements massīvā, otrajā nonāks tā numurs masīvā (indekss), bet trešajā - pats masīvs.

Sintakse

javascriptlet jaunaisMasivs = masivs.filter(function(elements, indekss, masivs) {
  kods
  return true vai false
});

Piemērs

Atfiltrēsim masīvu, atstājot tajā tikai pozitīvus skaitļus:

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

Koda izpildes rezultāts:

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

Piemērs

Saīsināsim kodu, izmantojot bultfunkciju:

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

Koda izpildes rezultāts:

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

Piemērs

Saīsināsim kodu, izmantojot loģisko operāciju saīsinājumu:

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

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

console.log(res);

Koda izpildes rezultāts:

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

Piemērs

Saīsināsim kodu, izmantojot bultfunkciju īpatnības:

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

console.log(res);

Koda izpildes rezultāts:

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

Piemērs

Ja nepieciešams, trešajā parametrā var padot pašu masīvu:

javascriptlet res = arr.filter(function(elem, index, arr) {
  šeit būs pieejams masīvs arr
});

Skatiet arī

  • metodes map un forEach,
    kuras ļauj piemērot funkciju katram masīva elementam
  • metodes some un every,
    kas veic masīva pārbaudi
  • metodes reduce un reduceRight,
    kas sakļauj masīvu līdz vienai vērtībai