Maison  >  Article  >  interface Web  >  Comprendre les fonctions d'ordre supérieur en JavaScript

Comprendre les fonctions d'ordre supérieur en JavaScript

DDD
DDDoriginal
2024-11-20 11:39:46961parcourir

Razumevanje funkcija višeg reda (Higher-Order Functions) u JavaScript-u

Si vous apprenez JavaScript, vous avez probablement rencontré le terme Fonctions d'ordre supérieur. Même si cela semble compliqué, ce n’est pas si compliqué. JavaScript, en tant que langage de programmation fonctionnel, permet l'utilisation de ces fonctions, qui sont cruciales dans la programmation basée sur les fonctions.

Programmation fonctionnelle

La

La programmation fonctionnelle implique la création et l'utilisation de fonctions comme éléments de base principaux. Dans cette approche, les fonctions peuvent être transmises en tant que paramètres à d'autres fonctions ou renvoyées en tant que résultats. Cette façon de penser permet une écriture de code organisée et efficace.

Caractéristiques de première classe

JavaScript traite les fonctions comme des « citoyens de première classe ». Cela signifie que les fonctions sont des objets : un type spécifique d'objet qui peut être attribué à des variables, passé en tant que paramètres et utilisé dans différents contextes, tels que des nombres ou des chaînes.

Exemple :

function pozdrav() {
  console.log('Zdravo, svete!');
}
pozdrav();  // Ispisuje 'Zdravo, svete!'

// Dodavanje svojstva funkciji
pozdrav.jezik = 'srpski';
console.log(pozdrav.jezik); // Ispisuje 'srpski'

Affectation de fonctions à des variables

En JavaScript, des fonctions peuvent être affectées à des variables :

const kvadrat = function(x) {
  return x * x;
};
console.log(kvadrat(5));  // Ispisuje 25

Passer des fonctions en tant que paramètres

L'une des principales caractéristiques des fonctions de première classe est la possibilité de les transmettre comme arguments à d'autres fonctions :

function formalniPozdrav() {
  console.log("Kako ste?");
}
function neformalniPozdrav() {
  console.log("Šta ima?");
}
function pozdravVrsta(vrsta, formalan, neformalan) {
  if (vrsta === 'formalan') {
    formalan();
  } else if (vrsta === 'neformalan') {
    neformalan();
  }
}
pozdravVrsta('neformalan', formalniPozdrav, neformalniPozdrav);  // Ispisuje 'Šta ima?'

Fonctions d'ordre supérieur

Les

Fonctions d'ordre supérieur sont des fonctions qui acceptent d'autres fonctions comme arguments ou les renvoient comme résultats. Cela permet une écriture de code plus élégante et concise. Les exemples incluent les méthodes map, filter et reduction.

méthode map

map crée un nouveau tableau en appelant une fonction sur chaque élément du tableau existant :

Aucune méthode de cartographie :

const arr1 = [10, 20, 30, 40, 50];
const arr2 = [];
for (let i = 0; i < arr1.length; i++) {
  arr2.push(arr1[i] * 2);
}
console.log(arr2);  // [20, 40, 60, 80, 100]

Avec méthode cartographique :

const arr1 = [10, 20, 30. 40, 50];
const arr2 = arr1.map(item => item * 2);
console.log(arr2);  // [20, 40, 60, 8-, 100]

Méthode de filtrage

Le filtre

crée un nouveau tableau avec tous les éléments qui satisfont à la condition donnée :

const osobe = [
  { ime: 'Pera', godine: 13 },
  { ime: 'Mika', godine: 18 },
  { ime: 'Laza', godine: 64 },
  { ime: 'Ana', godine: 10 },
];
const punoletni = osobe.filter(osoba => osoba.godine >= 18);
console.log(punoletni);  // [ { ime: 'Mika', godine: 18 }, { ime: 'Laza', godine: 64 } ]

Réduire la méthode

reduce exécute une fonction sur chaque membre du tableau et renvoie une valeur unique :

Exemple avec réduire :

const arr = [4, 6, 10, 5, 25];
const suma = arr.reduce((akumulator, vrednost) => akumulator + vrednost, 0);
console.log(suma);  // 50

Création d'une fonction d'ordre supérieur

Imaginez si JavaScript n'avait pas de méthode de cartographie intégrée. Nous pouvons le créer nous-mêmes :

function mapiraj(arr, fn) {
  const noviNiz = [];
  for (let i = 0; i < arr.length; i++) {
    noviNiz.push(fn(arr[i]));
  }
  return noviNiz;
}
const duzine = mapiraj(['JavaScript', 'Python'], item => item.length);
console.log(duzine);  // [10, 6]

Conclusion

Les fonctions d'ordre supérieur permettent la flexibilité et la simplicité du code en JavaScript. En utilisant ces fonctionnalités, notre code devient plus concis, organisé et maintenable.

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!

Déclaration:
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