retour au cours

Filtrer par fonction

importance: 5

Nous avons une méthode intégrée arr.filter(f) pour les tableaux. Elle filtre tous les éléments à travers la fonction f. S’elle renvoie true, cet élément est renvoyé dans le tableau résultant.

Créez un ensemble de filtres “prêts à l’emploi”:

  • inBetween(a, b) – entre a etb ou égal à eux (inclusivement).
  • inArray([...]) – dans le tableau donné.

L’usage doit être comme ceci :

  • arr.filter(inBetween(3,6)) – sélectionne uniquement les valeurs entre 3 et 6.
  • arr.filter(inArray([1,2,3])) – sélectionne uniquement les éléments correspondant à l’un des membres de [1,2,3].

Par exemple :

/* .. votre code pour inBetween et inArray */
let arr = [1, 2, 3, 4, 5, 6, 7];

alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6

alert( arr.filter(inArray([1, 2, 10])) ); // 1,2

Open a sandbox with tests.

Filter inBetween

function inBetween(a, b) {
  return function(x) {
    return x >= a && x <= b;
  };
}

let arr = [1, 2, 3, 4, 5, 6, 7];
alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6

Filter inArray

function inArray(arr) {
  return function(x) {
    return arr.includes(x);
  };
}

let arr = [1, 2, 3, 4, 5, 6, 7];
alert( arr.filter(inArray([1, 2, 10])) ); // 1,2

Ouvrez la solution avec des tests dans une sandbox.