14 votes

Comment réussir la première partie de cet exercice de boucle de base ?

J'apprends le Javascript à partir du livre Eloquent Javascript de Marijn Haverbeke, il y a un exercice à la fin du deuxième chapitre (Structure du programme). Ecrivez une boucle qui fait sept appels à console.log pour sortir le triangle suivant :

#
##
###
####
#####
######
#######

J'ai essayé de résoudre le problème en utilisant une boucle for.

var hash = "#";

for(counter = 0; counter < 8; counter ++)
{

   hash = hash + "#";

   console.log(hash);

}

Le problème est qu'il ne montre pas la première ligne de la sortie requise, comment puis-je l'obtenir ?

J'apprécierais grandement toute solution, surtout si elle est accompagnée d'une petite explication.

11voto

gimbel0893 Points 324

Beau travail, puisque tu commences à peine.

Vous y êtes presque. Il suffit de déclarer la variable comme une chaîne vide.

// this is the line that needs to be changed
var hash = '';

for(....) {
  hash += "#";
  console.log(hash);
}

De cette façon, lorsque vous ajoutez à la variable "hash" dans la boucle, il n'y a pas de "#" supplémentaire provenant de la déclaration de la variable.

6voto

CEO Underworld Points 96

Votre code est exécuté "de haut en bas".

Dans votre boucle 'for', la première itération ajoute un # à la variable hash déjà déclarée, ce qui la rend ## et est enregistré par la console.

Il suffit de mettre console.log(hash) avant hash = hash + "#".

console.log(hash);
hash = hash + "#";

Cela permettra de s'assurer que lors de la première itération, un '#' sera d'abord 'enregistré' et seulement ensuite hash = hash + "#" pourra fonctionner :)

4voto

Sterling Archer Points 8480

Tu lui concatènes immédiatement un hash. Enregistrez la valeur initiale avant la boucle.

console.log(hash);
for ...

0voto

Minato Points 1660

Je suis peut-être en retard, mais en faisant cela, vous perdez un caractère (le 9ème).

initialiser comme ceci

hash = '';

et vous êtes prêt à partir :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X