Réordonner les arguments de 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 rearg en JavaScript, qui nous permet de réordonner l'ordre des arguments passés à une fonction en fonction d'index spécifiés. Nous allons apprendre à utiliser la méthode Array.prototype.map() et l'opérateur de propagation pour transformer les arguments et invoquer la fonction d'origine avec les arguments réarrangés. À la fin de ce laboratoire, vous aurez une bonne compréhension de la manière d'utiliser la fonction rearg pour manipuler les arguments de fonction en JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced 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/functions("Functions") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/closures("Closures") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/data_types -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/arith_ops -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/comp_ops -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/functions -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/array_methods -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/closures -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/higher_funcs -.-> lab-28577{{"Réordonner les arguments de fonction"}} javascript/spread_rest -.-> lab-28577{{"Réordonner les arguments de fonction"}} end

Comment réordonner les arguments de fonction en JavaScript

Pour réordonner les arguments de fonction en JavaScript, vous pouvez utiliser la fonction rearg(). Tout d'abord, créez une fonction qui invoque la fonction fournie avec ses arguments arrangés selon les index spécifiés. Vous pouvez utiliser Array.prototype.map() pour réordonner les arguments en fonction des indexes. Ensuite, utilisez l'opérateur de propagation (...) pour passer les arguments transformés à fn.

Voici un exemple de manière d'utiliser la fonction rearg() :

const rearg =
  (fn, indexes) =>
  (...args) =>
    fn(...indexes.map((i) => args[i]));

Dans cet exemple, nous utilisons rearg() pour créer une nouvelle fonction qui réarrange les arguments d'une autre fonction.

var rearged = rearg(
  function (a, b, c) {
    return [a, b, c];
  },
  [2, 0, 1]
);
rearged("b", "c", "a"); // ['a', 'b', 'c']

Dans le code ci-dessus, nous créons une nouvelle fonction rearged qui réarrange les arguments de la fonction function(a, b, c) { return [a, b, c]; }. L'argument indexes spécifie l'ordre dans lequel les arguments doivent être réarrangés. Dans ce cas, nous voulons que le troisième argument vienne en premier, le premier argument vienne en second et le second argument vienne en troisième. Lorsque nous appelons rearged('b', 'c', 'a'), il renvoie ['a', 'b', 'c'], qui est le résultat de l'appel de la fonction d'origine avec les arguments réarrangés.

Sommaire

Félicitations! Vous avez terminé le laboratoire sur le réarrangement des arguments de fonction. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.