Metoda filter

Metoda filter permite filtrarea elementelor array-ului, păstrând doar cele care îndeplinesc o anumită condiție. Metoda primește ca parametru o funcție, care se va executa pentru fiecare element al array-ului. Metoda returnează un nou array, în care vor intra doar acele elemente pentru care funcția transmisă returnează true.

În funcție pot fi transmise trei parametri. Dacă acești parametri există (nu sunt obligatorii), atunci în primul va intra automat elementul array-ului, în al doilea va intra numărul său în array (indexul), iar în al treilea - array-ul însuși.

Sintaxă

javascriptlet array nou = array.filter(function(element, index, array) {
  cod
  return true sau false
});

Exemplu

Să filtrăm array-ul, păstrând în el doar numerele pozitive:

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

Rezultatul executării codului:

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

Exemplu

Să scurtăm codul, utilizând funcția săgeată:

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

Rezultatul executării codului:

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

Exemplu

Să scurtăm codul, utilizând scurtările operațiilor logice:

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

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

console.log(res);

Rezultatul executării codului:

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

Exemplu

Să scurtăm codul, utilizând particularitățile funcțiilor săgeată:

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

console.log(res);

Rezultatul executării codului:

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

Exemplu

La nevoie, în al treilea parametru poate fi transmis array-ul însuși:

javascriptlet res = arr.filter(function(elem, index, arr) {
  aici va fi accesibil array-ul arr
});

Vezi și

  • metodele map și forEach,
    care permit aplicarea unei funcții la fiecare element al array-ului
  • metodele some și every,
    care efectuează verificarea array-ului
  • metodele reduce și reduceRight,
    care reduc array-ul la o singură valoare