JavaScriptTableaux

Array.prototype.filter()

Crée un nouveau tableau avec les éléments pour lesquels la fonction a renvoyé true.

Renvoie
Un nouveau tableau avec les éléments qui ont passé le test (peut être vide).
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const scores = [45, 82, 67, 91, 30]
const passed = scores.filter((score) => score >= 60)

console.log(passed)
console.log(scores.length)
Console
[82, 67, 91]
5

Définition et utilisation

#

La méthode filter() teste chaque élément du tableau avec une fonction de test. Les éléments pour lesquels la fonction renvoie une valeur vraie sont placés dans le nouveau tableau, les autres sont ignorés. L’original n’est pas modifié.

C’est l’outil de base pour sélectionner des données : utilisateurs actifs, tâches à faire, produits d’une catégorie donnée ou résultats de recherche.

Le résultat est toujours un tableau. Si aucun élément ne correspond, vous obtenez un tableau vide [], et non undefined. Si vous n’avez besoin que du premier élément correspondant, la méthode find() est plus rapide et plus claire.

Syntaxe

#
Syntaxe
array.filter(callbackFn)
array.filter(callbackFn, thisArg)

Paramètres

#
  • callbackFn

    function (element, index, array)

    Fonction de test. L’élément sera inclus dans le résultat si elle renvoie une valeur vraie.
  • thisArg

    optionnel

    Valeur de this à l’intérieur de la fonction. Sans effet avec les fonctions fléchées.

Plus d’exemples

#
Filtrer des objets
JavaScript
const tasks = [
  { title: 'Module HTML', done: true },
  { title: 'Module CSS', done: false },
  { title: 'Module JS', done: false }
]

const todo = tasks.filter((task) => !task.done)
console.log(todo.map((task) => task.title))
Console
['Module CSS', 'Module JS']
Supprimer les valeurs vides
JavaScript
const values = ['Léa', '', null, 'Lucas', undefined, 0]
console.log(values.filter(Boolean))
Console
['Léa', 'Lucas']

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • filter(Boolean) est un moyen rapide de supprimer les chaînes vides, null, undefined et les zéros. Attention seulement si 0 est une valeur valide.
  • Vous pouvez enchaîner filter() et map(), mais chaque méthode parcourt le tableau séparément. Pour de très grandes quantités de données, envisagez un seul reduce().

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.