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
let nouveau_tableau = tableau.filter(function(element, indice, tableau) {
code
return true ou false
});
Exemple
Filtrons un tableau pour ne conserver que les nombres positifs :
let 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 :
[5, 1, 1, 3, 4]
Exemple
Raccourcissons le code en utilisant une fonction fléchée :
let 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 :
[5, 1, 1, 3, 4]
Exemple
Raccourcissons le code en utilisant la simplification des opérateurs logiques :
let 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 :
[5, 1, 1, 3, 4]
Exemple
Raccourcissons le code en utilisant les particularités des fonctions fléchées :
let 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 :
[5, 1, 1, 3, 4]
Exemple
Si nécessaire, le tableau lui-même peut être passé en troisième paramètre :
let res = arr.filter(function(elem, index, arr) {
le tableau arr sera accessible ici
});