Une string est le type de données JavaScript qui permet de stocker du texte.
Pour créer une string, on entoure le texte de guillemets simples ou de guillemets doubles. Sur Exercism, on utilise des guillemets simples.
'Hello, World!'
"Hello, World!"
On peut considérer une string comme un tableau de caractères dont le premier caractère a pour indice 0. On peut accéder à un caractère individuel de la string à l'aide de crochets et de l'indice de la lettre que l'on souhaite récupérer.
'cat'[1];
// => 'a'
On peut déterminer le nombre de caractères d'une string en accédant à la propriété length.
'cat'.length;
// => 3
La façon la plus simple de concaténer des strings est d'utiliser l'opérateur d'addition +.
'I like' + ' ' + 'cats.';
// => "I like cats."
Les strings fournissent de nombreuses méthodes utilitaires ; consulte la documentation MDN sur les méthodes de String pour une liste complète. La liste suivante présente quelques méthodes utilitaires couramment utilisées.
toUpperCase et toLowerCase : modifient la casse de tous les caractèrestrim : supprime les espaces au début et à la finincludes, startsWith et endsWith : déterminent si une autre string fait partie de la string donnéeslice : extrait une partie de la string
Les strings sont immuables en JavaScript. Ainsi, une « modification », par exemple avec certaines des méthodes ci-dessus, crée toujours une nouvelle string à la place.
Un nouveau club de poésie a ouvert en ville, et tu envisages d'y aller. Comme il y a eu des incidents par le passé, le club applique une politique d'entrée très particulière qu'il te faudra maîtriser avant de tenter d'entrer.
Le club de poésie a deux portes, une porte de devant et une porte de derrière, et toutes les deux sont gardées. Pour entrer, tu devras trouver le mot de passe du jour.
Le mot de passe est toujours basé sur un poème et s'obtient en deux étapes.
Les détails de ce processus dépendent de la porte par laquelle tu cherches à entrer.
Pour déterminer les lettres du mot de passe de la porte de devant, tu dois répondre par la première lettre de la ligne du poème que le gardien te récite.
Pour obtenir un joli mot de passe, les membres du club de poésie aiment utiliser des poèmes acrostiches. Cela signifie que la première lettre de chaque phrase forme un mot. Voici un exemple de l'un de leurs écrivains préférés, Michael Lockwood.
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
Donc quand le gardien récite Stands so high, tu réponds S, et quand le gardien récite Huge hooves too, tu réponds H.
Implémente la fonction frontDoorResponse qui prend une ligne du poème en argument et renvoie la première lettre de cette ligne.
frontDoorResponse('Stands so high');
// => "S"
Maintenant que tu as toutes les bonnes lettres, il ne te reste plus qu'à mettre correctement la majuscule au mot pour obtenir le mot de passe de la porte de devant.
Implémente la fonction frontDoorPassword qui accepte une string (les lettres assemblées que tu as trouvées dans la tâche 1) et la renvoie avec la majuscule bien placée.
frontDoorPassword('SHIRE');
// => "Shire"
frontDoorPassword('shire');
// => "Shire"
Pour déterminer les lettres du mot de passe de la porte de derrière, tu dois répondre par la dernière lettre de la ligne du poème que le gardien te récite.
Les membres du club de poésie sont vraiment malins. Le poème mentionné plus haut est aussi télésestiché, ce qui signifie que la dernière lettre de chaque phrase forme elle aussi un mot :
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
Quand le gardien récite Stands so high, tu réponds h, et quand le gardien récite Huge hooves too, tu réponds o.
Note que le gardien fait parfois des pauses stylistiques (sous forme d'espaces) au début ou à la fin d'une ligne. Tu devras ignorer ces pauses pour trouver la bonne lettre.
Implémente la fonction backDoorResponse qui prend une ligne du poème en argument et renvoie la dernière lettre de cette ligne qui n'est pas un espace.
backDoorResponse('Stands so high');
// => "h"
backDoorResponse('Stands so high ');
// => "h"
Pour entrer dans le club de poésie par la porte de derrière, tu dois être particulièrement poli.
Donc, pour trouver le mot de passe, cette fois tu dois mettre correctement la majuscule au mot et ajouter ', please' à la fin.
Implémente la fonction backDoorPassword qui accepte une string (les lettres assemblées que tu as trouvées dans la tâche 3) et renvoie la version polie du mot de passe avec sa majuscule.
backDoorPassword('horse');
// => "Horse, please"
Inscris-toi sur Exercism pour apprendre et maîtriser JavaScript avec 37 concepts159 exercices, et un vrai mentorat humain, le tout gratuitement.