Méthode filter

La méthode filter permet de filtrer les éléments d'un tableau, en ne conservant que ceux qui répondent à une condition spécifique. La méthode prend en paramètre une fonction, qui s'exécutera pour chaque élément du tableau. La méthode renvoie un nouveau tableau, qui contiendra uniquement les éléments pour lesquels la fonction transmise a renvoyé true.

Trois paramètres peuvent être passés à la fonction. Si ces paramètres sont présents (ils ne sont pas obligatoires), alors le premier recevra automatiquement l'élément du tableau, le deuxième recevra son numéro dans le tableau (l'indice), et le troisième - le tableau lui-même.

Syntaxe

javascriptlet nouveau_tableau = tableau.filter(function(element, indice, tableau) {
  code
  return true ou false
});

Exemple

Filtrons un tableau pour ne conserver que les nombres positifs :

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

Résultat de l'exécution du code :

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

Exemple

Raccourcissons le code en utilisant une fonction fléchée :

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

Résultat de l'exécution du code :

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

Exemple

Raccourcissons le code en utilisant la simplification des opérateurs logiques :

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

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

console.log(res);

Résultat de l'exécution du code :

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

Exemple

Raccourcissons le code en utilisant les particularités des fonctions fléchées :

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

console.log(res);

Résultat de l'exécution du code :

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

Exemple

Si nécessaire, le tableau lui-même peut être passé en troisième paramètre :

javascriptlet res = arr.filter(function(elem, index, arr) {
  le tableau arr sera accessible ici
});

Voir aussi

  • les méthodes map et forEach,
    qui permettent d'appliquer une fonction à chaque élément du tableau
  • les méthodes some et every,
    effectuant une vérification du tableau
  • les méthodes reduce et reduceRight,
    réduisant un tableau à une seule valeur