Valeur maximale 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 plonger dans un défi de programmation JavaScript où nous devrons créer une fonction qui renvoie la valeur maximale d'un tableau, après avoir appliqué une fonction donnée à chaque élément pour le mapper à une valeur. En utilisant Array.prototype.map() et Math.max(), nous serons en mesure d'atteindre efficacement cette tâche et de mieux comprendre ces méthodes essentielles de JavaScript.

Comment trouver la valeur maximale d'un tableau en fonction d'une fonction

Pour trouver la valeur maximale d'un tableau en fonction d'une fonction, suivez ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Utilisez Array.prototype.map() pour mapper chaque élément du tableau à la valeur renvoyée par la fonction fournie, fn.
  3. Utilisez Math.max() pour obtenir la valeur maximale du tableau mappé.

Voici un extrait de code d'exemple qui met en œuvre les étapes ci-dessus :

const maxBy = (arr, fn) =>
  Math.max(...arr.map(typeof fn === "function" ? fn : (val) => val[fn]));

Pour utiliser la fonction maxBy, passez un tableau et la fonction qui doit être utilisée pour mapper chaque élément à une valeur. Vous pouvez soit passer directement une fonction soit une chaîne de caractères représentant la clé qui doit être utilisée pour accéder à la valeur dans chaque objet du tableau.

Voici quelques appels d'exemple à la fonction maxBy :

maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], (x) => x.n); // renvoie 8
maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], "n"); // renvoie 8

Sommaire

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