Générer tant que la condition est satisfaite

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 explorer la manière de créer une fonction génératrice en JavaScript qui produit de nouvelles valeurs tant qu'une condition donnée est satisfaite. Nous utiliserons la fonction generateWhile qui prend une valeur initiale, une fonction de condition et une fonction next pour calculer la valeur suivante à partir de la valeur actuelle et de la prochaine valeur initiale. À la fin de ce laboratoire, vous serez capable de créer des générateurs personnalisés qui peuvent être utilisés pour produire des valeurs en fonction de conditions et de règles spécifiques.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") subgraph Lab Skills javascript/variables -.-> lab-28347{{"Générer tant que la condition est satisfaite"}} javascript/data_types -.-> lab-28347{{"Générer tant que la condition est satisfaite"}} javascript/arith_ops -.-> lab-28347{{"Générer tant que la condition est satisfaite"}} javascript/loops -.-> lab-28347{{"Générer tant que la condition est satisfaite"}} end

Générateur qui produit des valeurs tant qu'une condition est vraie

Pour commencer à coder, ouvrez le Terminal/SSH et tapez node. Cela créera un générateur qui continue de produire de nouvelles valeurs tant que la condition donnée est satisfaite.

Le générateur est initialisé avec une valeur seed, qui est utilisée pour initialiser la valeur val actuelle. Une boucle while est ensuite utilisée pour itérer tant que la fonction condition appelée avec la valeur val actuelle renvoie true.

Le mot clé yield est utilisé pour renvoyer la valeur val actuelle et éventuellement recevoir une nouvelle valeur nextSeed. La fonction next est utilisée pour calculer la valeur suivante à partir de la valeur val actuelle et de la valeur nextSeed.

const generateWhile = function* (seed, condition, next) {
  let val = seed;
  let nextSeed = null;
  while (condition(val)) {
    nextSeed = yield val;
    val = next(val, nextSeed);
  }
  return val;
};

Pour utiliser le générateur, appelez-le avec les fonctions seed, condition et next. Par exemple, l'appel [...generateWhile(1, v => v <= 5, v => ++v)] renverra [1, 2, 3, 4, 5].

Résumé

Félicitations ! Vous avez terminé le laboratoire Générer tant que la condition est satisfaite. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.