Maison > interface Web > js tutoriel > le corps du texte

Qu'est-ce qu'une fonction d'ordre supérieur en Javascript

Patricia Arquette
Libérer: 2024-10-22 06:21:31
original
962 Les gens l'ont consulté

What is higher-order function in Javascript

Qu’est-ce qu’une fonction d’ordre supérieur ?

Une fonction d'ordre supérieur est une fonction qui soit :

  • Prend une ou plusieurs fonctions comme arguments
  • Renvoie une fonction comme résultat

C'est l'un des fondements de la programmation fonctionnelle.

Exemples de fonctions d'ordre supérieur en JS :

//map() and reduce()
let nums = [1, 2, 3, 4]
let addOne = nums.map((i) => i+1) // [2,3,4,5]
let combined = nums.reduce((res, cur) => res+=cur, 0) // 10
Copier après la connexion

Pourquoi utiliser une fonction d’ordre supérieur ?

Simplifie les motifs répétés (abstraction) et réutilisabilité

Imaginez que vous travaillez avec des listes de nombres et que vous devez effectuer différentes opérations (par exemple, doubler, mettre au carré ou ajouter une constante). Au lieu d'écrire plusieurs boucles similaires, vous pouvez résumer le comportement avec une fonction d'ordre supérieur.

//normal version
let numbers = [1, 2, 3, 4]; 

const squares = (nums) => {
    let result = [];
    for(let i of nums) {
        result.push(i*i);
    }
    return result;
}

const addThree = (nums) => {
    let result = [];
    for(let i of nums) {
        result.push(i+3);
    }
    return result;
}
squares(numbers) // [1,4,9,16]
addThree(numbers) // [4,5,6,7]
Copier après la connexion
//higher-order function version
let numbers = [1, 2, 3, 4]; 

const applyAll = (func, nums) => {
    let result = [];
    for(let i of nums) {
        result.push(func(i));
    }
    return result;
}

applyAll((i) => i*i, numbers) // [1,4,9,16]
applyAll((i) => i+3, numbers) // [4,5,6,7]
Copier après la connexion

Avec une fonction générique d'ordre supérieurapplyAll, vous pouvez gérer plusieurs opérations et éviter le code répétitif.

Construire une logique complexe à partir de petites fonctions (Composability)

En composant de petites fonctions, vous pouvez créer des comportements plus complexes. Par exemple, si vous souhaitez d'abord filtrer une liste de nombres pour obtenir uniquement les nombres pairs, puis les doubler, puis les additionner tous ensemble, vous pouvez enchaîner des fonctions d'ordre supérieur.

//you can chain filter -> map -> reduce
let numbers = [1, 2, 3, 4];
let result = numbers
    .filter(i => i%2===0)
    .map(i => i*2)
    .reduce((res, cur) => res+=cur, 0); // 12
Copier après la connexion

Chaque étape (filtrage, mappage, réduction) est gérée par une fonction d'ordre supérieur, ce qui rend le processus plus modulaire, plus facile à maintenir et testable de manière isolée.


C'est ça ! Merci d'avoir lu jusqu'ici. À la prochaine fois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!