recherche
Maisoninterface Webjs tutorielFiltrage et chaînage en JavaScript fonctionnel

Filtering and Chaining in Functional JavaScript

Vocabulaire de JavaScript: programmation orientée objet, impérative et fonctionnelle

La puissance de JavaScript est sa polyvalence, qui prend en charge la programmation orientée objet, la programmation impérative et la programmation fonctionnelle. Les développeurs peuvent changer de manière flexible les paradigmes de programmation en fonction des besoins du projet et des préférences d'équipe.

ES5 introduit des méthodes de tableau natives telles que map, reduce et filter, ce qui facilite considérablement la programmation fonctionnelle. Parmi eux, la méthode filter peut itérer à travers chaque élément du tableau et déterminer s'il faut l'ajouter au nouveau tableau en fonction des conditions de test spécifiées.

Simplifiez le code en utilisant filter Méthode

filter La méthode rend le code plus concis et plus clair. Il itère sur chaque élément du tableau et applique la fonction de test. Si la fonction de test renvoie true, l'élément sera inclus dans le nouveau tableau renvoyé par la méthode filter.

La méthode

filter fonctionne en conjonction avec les deux autres méthodes de tableau fonctionnel de ES5, map et reduce, et peut être utilisée en combinaison pour créer du code concis et efficace tout en gardant le tableau d'origine inchangé.

Bien que la méthode filter puisse être légèrement plus lente que la boucle for, ses avantages de simplicité de code et de maintenabilité en font une pratique recommandée. Avec l'optimisation du moteur JavaScript, ses performances devraient être encore améliorées.

Cet article a été examiné par Dan Prince, Vildan Softic et Joan Yinn. Merci à tous les pair de sitepoint pour avoir obtenu le contenu de sitepoint à son meilleur!

Filtering and Chaining in Functional JavaScript

L'une des raisons pour lesquelles j'aime JavaScript est sa flexibilité. Il vous permet d'utiliser une programmation orientée objet, une programmation impérative et même une programmation fonctionnelle, et peut basculer entre eux en fonction de vos besoins actuels et de vos préférences et attentes d'équipe.

Bien que JavaScript prend en charge la technologie fonctionnelle, il n'est pas optimisé pour la programmation fonctionnelle pure comme Haskell ou Scala. Bien que je ne construise généralement pas mes programmes JavaScript en 100% fonctionnels, j'aime utiliser le concept de programmation fonctionnelle pour m'aider à garder mon code simplicité et à me concentrer sur la conception du code facile à réutiliser et à tester.

Ensemble de données de filtre à l'aide de filter Méthode

L'émergence d'ES5 rend les tableaux JavaScript hériter certaines méthodes qui rendent la programmation fonctionnelle plus pratique. Les tableaux JavaScript peuvent désormais être mappés, réglementés et filtrés nativement. Chaque méthode traverse chaque élément du tableau, effectue une analyse sans bouclage ou modifie les modifications de l'état local, les résultats de retour qui peuvent être utilisés immédiatement ou fonctionner plus loin. Dans cet article, je veux vous présenter le filtrage. Le filtrage vous permet d'évaluer chaque élément du tableau et de déterminer s'il faut renvoyer un nouveau tableau contenant l'élément en fonction des conditions de test dans lesquelles vous avez réussi. Lorsque vous utilisez la méthode de filtre de l'arraie, vous obtiendrez un autre tableau qui a la même longueur que le tableau d'origine ou plus court, contenant des éléments de sous-ensemble dans le tableau d'origine qui correspond aux conditions que vous définissez.

Filtre en utilisant la démonstration de boucle

Un exemple de problème simple qui peut bénéficier du filtrage consiste à limiter les tableaux de chaînes aux chaînes avec seulement trois caractères. Ce n'est pas un problème compliqué, nous pouvons facilement le résoudre en utilisant JavaScript normal pour les boucles et sans utiliser de méthodes de filtre. Cela pourrait ressembler à ceci:

var animals = ["cat","dog","fish"];
var threeLetterAnimals = [];
for (let count = 0; count < animals.length; count++) {
  if (animals[count].length === 3) {
    threeLetterAnimals.push(animals[count]);
  }
}
console.log(threeLetterAnimals); // ["cat", "dog"]

Ce que nous faisons ici, c'est définir un tableau contenant trois chaînes et créer un tableau vide où nous ne pouvons stocker que trois caractères de chaîne. Nous définissons une variable de comptage qui est utilisée dans une boucle pour itérer dans le tableau. Chaque fois que nous rencontrons une chaîne qui a trois caractères, nous la poussons dans notre nouveau tableau vide. Une fois terminé, nous avons juste besoin d'enregistrer les résultats. Rien ne nous empêche de modifier le tableau d'origine dans une boucle, mais cela perdra définitivement la valeur d'origine. Il est beaucoup plus propre de créer un nouveau tableau et de garder le tableau d'origine inchangé.

Utilisation de la méthode filter Méthode

Nous n'avions pas eu d'erreurs techniques à faire, mais la disponibilité de la méthode de filtre sur le tableau nous permet de rendre notre code plus concis et direct. Voici un exemple de la façon de faire exactement la même chose en utilisant la méthode du filtre:

var animals = ["cat","dog","fish"];
var threeLetterAnimals = [];
for (let count = 0; count < animals.length; count++) {
  if (animals[count].length === 3) {
    threeLetterAnimals.push(animals[count]);
  }
}
console.log(threeLetterAnimals); // ["cat", "dog"]

Comme auparavant, nous commençons par les variables contenant le tableau d'origine, et nous définissons une nouvelle variable pour un tableau qui ne contiendra que des chaînes avec trois caractères. Mais dans ce cas, lorsque nous définissons le deuxième tableau, nous l'avons attribué directement au résultat de l'application de la méthode de filtre au tableau des animaux d'origine. Nous passons une fonction en ligne anonyme pour filtrer qui renvoie vrai uniquement si la longueur de valeur de son fonctionnement est 3. La méthode du filtre fonctionne en itérant sur chaque élément du tableau et en appliquant la fonction de test à cet élément. Si la fonction de test renvoie vrai pour l'élément, le tableau renvoyé par la méthode du filtre contiendra l'élément. D'autres éléments seront ignorés. Vous pouvez voir à quel point le code est concis. Même si vous ne comprenez pas le rôle de filtre à l'avance, vous pouvez vérifier ce code et déterminer son intention. Un avantage de la programmation fonctionnelle est qu'il réduit le nombre d'états locaux à suivre et limite la modification des variables externes à partir de la fonction, améliorant ainsi la simplicité du code. Dans ce cas, les variables de comptage et les différents états que nous prenons lorsque nous traversons le tableau d'origine ne sont que plus d'états qui doivent être suivis. À l'aide du filtre, nous avons réussi à éliminer les boucles ainsi que les variables de comptage. Nous ne modifions pas la valeur d'un nouveau tableau autant de fois qu'auparavant. Nous ne le définissons qu'une seule fois et lui attribuons la valeur obtenue en appliquant notre condition de filtre au tableau d'origine.

d'autres façons de formater les filtres

Si nous utilisons des déclarations const et des fonctions de flèche en ligne anonymes, notre code peut être plus concis. Ce sont des fonctionnalités ECMAScript 6 (ES6) qui sont soutenues nativement par la plupart des navigateurs et des moteurs JavaScript maintenant.

var animals = ["cat","dog","fish"];
var threeLetterAnimals = animals.filter(function(animal) {
  return animal.length === 3;
});
console.log(threeLetterAnimals); // ["cat", "dog"]

Bien qu'il soit préférable d'aller au-delà de l'ancienne syntaxe dans la plupart des cas, sauf si vous devez faire correspondre votre code à une base de code existante, il est important de le choisir. À mesure que nous devenons plus concis, chaque ligne de notre code devient plus complexe. Une partie de ce qui rend JavaScript si intéressant est que vous pouvez essayer de concevoir le même code en utilisant de nombreuses façons d'optimiser la taille, l'efficacité, la clarté ou la maintenabilité pour répondre aux préférences de votre équipe. Mais cela exerce également un plus grand fardeau à l'équipe, nécessitant de créer des guides de style partagé et de discuter des avantages et des inconvénients de chaque choix. Dans ce cas, pour rendre notre code plus lisible et polyvalent, nous pourrions vouloir prendre la fonction de flèche en ligne anonyme ci-dessus et la convertir en une fonction nommée traditionnelle, puis passer cette fonction nommée directement au filtre dans la méthode. Le code peut ressembler à ceci:

const animals = ["cat","dog","fish"];
const threeLetterAnimals = animals.filter(item => item.length === 3);
console.log(threeLetterAnimals); // ["cat", "dog"]

Tout ce que nous faisons ici est d'extraire la fonction de flèche en ligne anonyme définie ci-dessus et de la convertir en une fonction nommée distincte. Comme nous pouvons le voir, nous avons défini une fonction pure qui prend le type de valeur approprié de l'élément de tableau et renvoie le même type. Nous pouvons passer directement le nom de la fonction en tant que condition à la méthode du filtre.

(Contenu de l'enquête, concernant map, reduce et les appels de chaîne, veuillez l'ajouter en fonction du texte d'origine en raison des limitations de l'espace.) Maintenez les images et le format du texte d'origine.

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
Construire une application SaaS multi-locataire avec next.js (intégration backend)Construire une application SaaS multi-locataire avec next.js (intégration backend)Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript: Explorer la polyvalence d'un langage WebJavaScript: Explorer la polyvalence d'un langage WebApr 11, 2025 am 12:01 AM

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

L'évolution de JavaScript: tendances actuelles et perspectives d'avenirL'évolution de JavaScript: tendances actuelles et perspectives d'avenirApr 10, 2025 am 09:33 AM

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Démystifier javascript: ce qu'il fait et pourquoi c'est importantDémystifier javascript: ce qu'il fait et pourquoi c'est importantApr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python ou JavaScript est-il meilleur?Python ou JavaScript est-il meilleur?Apr 06, 2025 am 12:14 AM

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.

Comment installer JavaScript?Comment installer JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.

Comment envoyer des notifications avant le début d'une tâche en quartz?Comment envoyer des notifications avant le début d'une tâche en quartz?Apr 04, 2025 pm 09:24 PM

Comment envoyer à l'avance des notifications de tâches en quartz lors de l'utilisation du minuteur de quartz pour planifier une tâche, le temps d'exécution de la tâche est défini par l'expression CRON. Maintenant...

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit