Pour pratiquer la programmation, ouvrez le Terminal ou SSH et tapez node.
Voici une fonction qui renvoie les valeurs minimales et maximales d'un tableau, en fonction d'une fonction fournie qui définit la règle de comparaison :
const reduceWhich = (arr, comparator = (a, b) => a - b) =>
arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));
Pour l'utiliser, suivez ces étapes :
- Appelez
reduceWhich avec le tableau que vous voulez traiter et la fonction comparator optionnelle.
- La fonction
reduceWhich utilisera Array.prototype.reduce() en combinaison avec la fonction comparator pour retourner l'élément approprié dans le tableau.
- Si vous omettez le second argument (
comparator), la fonction par défaut sera utilisée, qui renvoie l'élément minimum du tableau.
Voici quelques exemples d'utilisation de reduceWhich :
reduceWhich([1, 3, 2]); // 1
reduceWhich([1, 3, 2], (a, b) => b - a); // 3
reduceWhich(
[
{ name: "Tom", age: 12 },
{ name: "Jack", age: 18 },
{ name: "Lucy", age: 9 }
],
(a, b) => a.age - b.age
); // {name: 'Lucy', age: 9}
Dans les exemples ci-dessus, le premier appel à reduceWhich renvoie la valeur minimale du tableau [1, 3, 2], qui est 1. Le second appel renvoie la valeur maximale du même tableau, en fonction de la fonction comparator qui inverse l'ordre de comparaison. Le troisième appel renvoie l'objet dans le tableau qui a la propriété age minimale, en fonction de la fonction comparator qui compare les propriétés age des objets.