Filtrer les valeurs uniques d'un tableau en fonction d'une fonction

JavaScriptJavaScriptBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à créer un tableau avec les valeurs uniques filtrées en fonction d'une fonction de comparaison en JavaScript. Nous utiliserons les méthodes Array.prototype.filter() et Array.prototype.every() pour créer un tableau ne contenant que les valeurs non uniques. Ce laboratoire vous procurera une expérience pratique dans le filtrage des valeurs uniques d'un tableau à l'aide d'une fonction de comparaison.

Filtrer les valeurs uniques d'un tableau en fonction d'une fonction

Voici comment créer un tableau qui ne contient que les valeurs non uniques en filtrant les valeurs uniques en fonction d'une fonction de comparaison, fn :

const filterUniqueBy = (arr, fn) =>
  arr.filter((v, i) => arr.some((x, j) => (i !== j) === fn(v, x, i, j)));

Pour utiliser cette fonction, appelez filterUniqueBy() avec deux arguments : le tableau que vous voulez filtrer et la fonction de comparaison. La fonction de comparaison devrait prendre quatre arguments : les valeurs des deux éléments comparés et leurs index.

Par exemple, si vous avez un tableau d'objets et que vous voulez filtrer les objets avec des valeurs id uniques, vous pouvez faire ceci :

filterUniqueBy(
  [
    { id: 0, value: "a" },
    { id: 1, value: "b" },
    { id: 2, value: "c" },
    { id: 3, value: "d" },
    { id: 0, value: "e" }
  ],
  (a, b) => a.id == b.id
); // [ { id: 0, value: 'a' }, { id: 0, value: 'e' } ]

Pour commencer à pratiquer la programmation, ouvrez le Terminal/SSH et tapez node.

Résumé

Félicitations ! Vous avez terminé le laboratoire Filtrer les valeurs uniques d'un tableau en fonction d'une fonction. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.