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

Comprendre les fonctions d'ordre supérieur en JavaScript

DDD
Libérer: 2024-11-20 11:39:46
original
1031 Les gens l'ont consulté

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'
Copier après la connexion

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
Copier après la connexion

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?'
Copier après la connexion

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]
Copier après la connexion

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]
Copier après la connexion

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 } ]
Copier après la connexion

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
Copier après la connexion

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]
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal