Exercices de programmation JavaScript de base

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 programmation JavaScript en effectuant une série d'exercices conçus pour aider à développer les compétences fondamentales. Du syntaxe de base et des types de données aux concepts plus avancés tels que la programmation asynchrone et la programmation fonctionnelle, ce laboratoire vous procurera une expérience pratique qui vous aidera à devenir un développeur JavaScript compétent. Que vous soyez nouveau en programmation ou que vous cherchiez à étendre vos compétences, ce laboratoire vous fournira les outils dont vous avez besoin pour réussir.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28492{{"Exercices de programmation JavaScript de base"}} javascript/data_types -.-> lab-28492{{"Exercices de programmation JavaScript de base"}} javascript/arith_ops -.-> lab-28492{{"Exercices de programmation JavaScript de base"}} javascript/comp_ops -.-> lab-28492{{"Exercices de programmation JavaScript de base"}} javascript/cond_stmts -.-> lab-28492{{"Exercices de programmation JavaScript de base"}} javascript/spread_rest -.-> lab-28492{{"Exercices de programmation JavaScript de base"}} end

Algorithme du plus grand sous-tableau

Pour pratiquer la programmation, ouvrez le Terminal/SSH et tapez node. Cet algorithme trouve un sous-tableau contigu avec la plus grande somme dans un tableau de nombres. Pour implémenter cet algorithme, suivez ces étapes :

  • Utilisez une approche gourmande pour suivre la somme actuelle et la somme maximale actuelle, maxSum. Initialisez maxSum à -Infinity pour vous assurer que la plus haute valeur négative est renvoyée si toutes les valeurs sont négatives.
  • Définissez des variables pour suivre l'index de début maximal, sMax, l'index de fin maximal, eMax et l'index de début actuel, s.
  • Utilisez Array.prototype.forEach() pour itérer sur les valeurs et ajoutez la valeur actuelle à la sum.
  • Si la somme actuelle est supérieure à maxSum, mettez à jour les valeurs d'index et la maxSum.
  • Si la sum est inférieure à 0, réinitialisez-la à 0 et mettez à jour la valeur de s avec l'index suivant.
  • Utilisez Array.prototype.slice() pour renvoyer le sous-tableau indiqué par les variables d'index.

Voici le code JavaScript pour l'algorithme :

const maxSubarray = (...arr) => {
  let maxSum = -Infinity,
    sum = 0;
  let sMax = 0,
    eMax = arr.length - 1,
    s = 0;

  arr.forEach((n, i) => {
    sum += n;
    if (maxSum < sum) {
      maxSum = sum;
      sMax = s;
      eMax = i;
    }

    if (sum < 0) {
      sum = 0;
      s = i + 1;
    }
  });

  return arr.slice(sMax, eMax + 1);
};

Voici un exemple d'utilisation de la fonction :

maxSubarray(-2, 1, -3, 4, -1, 2, 1, -5, 4); // [4, -1, 2, 1]

Sommaire

Félicitations ! Vous avez terminé le laboratoire du plus grand sous-tableau. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.