Extraire des valeurs 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 explorer la fonction pullBy() en JavaScript. Cette fonction nous permet de filtrer des valeurs spécifiques dans un tableau en fonction d'une fonction itératrice donnée. À la fin de ce laboratoire, vous comprendrez comment utiliser pullBy() pour manipuler des tableaux et filtrer efficacement les valeurs indésirables.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/data_types -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/arith_ops -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/comp_ops -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/array_methods -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/obj_manip -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/higher_funcs -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/destr_assign -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} javascript/spread_rest -.-> lab-28562{{"Extraire des valeurs d'un tableau en fonction d'une fonction"}} end

Comment extraire des valeurs d'un tableau en fonction d'une fonction donnée

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

La fonction pullBy modifie le tableau original en filtrant les valeurs spécifiées en fonction d'une fonction itératrice donnée. Voici comment elle fonctionne :

  1. Vérifiez si le dernier argument fourni est une fonction.
  2. Utilisez Array.prototype.map() pour appliquer la fonction itératrice fn à tous les éléments du tableau.
  3. Utilisez Array.prototype.filter() et Array.prototype.includes() pour extraire les valeurs qui ne sont pas nécessaires.
  4. Définissez Array.prototype.length pour réinitialiser la longueur du tableau passé en paramètre à 0.
  5. Utilisez Array.prototype.push() pour le remplir uniquement avec les valeurs extraites.

Voici le code :

const pullBy = (arr, ...args) => {
  const length = args.length;
  let fn = length > 1 ? args[length - 1] : undefined;
  fn = typeof fn == "function" ? (args.pop(), fn) : undefined;
  let argState = (Array.isArray(args[0]) ? args[0] : args).map((val) =>
    fn(val)
  );
  let pulled = arr.filter((v, i) => !argState.includes(fn(v)));
  arr.length = 0;
  pulled.forEach((v) => arr.push(v));
};

Et voici un exemple de son utilisation :

var myArray = [{ x: 1 }, { x: 2 }, { x: 3 }, { x: 1 }];
pullBy(myArray, [{ x: 1 }, { x: 3 }], (o) => o.x); // myArray = [{ x: 2 }]

Notez que dans cet exemple, nous extrayons tous les éléments ayant une propriété x égale à 1 ou 3. Le myArray résultant ne contiendra que l'élément ayant une propriété x égale à 2.

Sommaire

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