Ravidhu Dissanayake

Les méthodes Javascript essentielles : filter, map, reduce

Les trois méthodes permettent de parcourir des listes. Néanmoins, c’est avec les listes d’objets que les méthodes ci dessous prennent tout leur sens. Mais techniquement, on peut les utiliser avec des listes contenant n’importe quel type de valeur.

Filtrer vos listes : filter

Cette méthode permet de filtrer une liste et retourne une nouvelle liste contenant uniquement les valeurs qui ont passé le test. Ce test est le seul paramètre de la méthode. Il prend la forme d’une fonction à deux paramètres : le premier est la valeur et le second est l’index. Ce test doit obligatoirement renvoyer un booléen.

Lorsque vous cherchez à optimiser des traitements, cette méthode est la première solution pour réduire la taille d’une liste.

Cibler les données dans vos listes : map

D’une certaine manière, cette méthode permet aussi de réduire la taille d’une liste avant d’en faire un traitement. La méthode a un paramètre obligatoire et ce dernier doit aussi être une fonction. La méthode a la même signature que la méthode filter, mais n’attend pas forcément un booléen en retour. Vous pouvez retourner n’importe quelle valeur. Dans le cas d’une liste contenant de gros objets, on peut l’utiliser pour avoir des objets plus petits et ainsi avoir une liste avec des valeurs plus légères.

Techniquement, la méthode map peut être utilisée avec des listes contenant n’importe quel type de valeur. Néanmoins, on comprend l’intérêt de cette fonction en l’utilisant avec des listes d’objets complexes.

Modifier vos listes : reduce

A mon avis, cette méthode est LE couteau suisse du JavaScript. Contrairement au deux autres fonctions, reduce prend deux paramètres :
le premier est une fonction à deux paramètres ( 4 si on compte les deux paramètres additionnels ). Le second est la valeur initiale.

Ce dernier paramètre est central dans le fonctionnement de reduce. Pour rappel, les 2 premières méthodes s’appliquent à des listes et renvoient des listes de cette manière :

  • filter vous retourne une liste dont la taille peut varier en fonction du test.
  • map vous renverra toujours une liste de la même taille que la liste sur lequel vous l’utilisez.

La méthode reduce, quand à elle, vous oblige à initialiser la valeur que vous récupérez à la fin.

Ainsi, le premier paramètre de reduce, va avoir pour rôle de modifier au besoin cette valeur initiale. Cette fonction de “mutation” a pour premier paramètre la valeur initiale. Le second paramètre est la valeur courante de la liste. Les deux autres paramètres sont l’index courant et la liste complète.

Voici un repl.it qui montre chacune de ces fonctions en action :

Leave a Comment