Tracks
/
JavaScript
JavaScript
/
Übungen
/
Türpolitik des Poesieclubs
Türpolitik des Poesieclubs

Türpolitik des Poesieclubs

Lernübung

Einführung

Ein String (Zeichenkette) ist der JavaScript-Datentyp zum Speichern von Textdaten.

Eine Zeichenkette erstellen

Du erstellst eine Zeichenkette, indem du den Text in einfache oder doppelte Anführungszeichen setzt. Bei Exercism verwendest du einfache Anführungszeichen.

'Hello, World!'
"Hello, World!"

Zeichenketten als Listen von Zeichen

Eine Zeichenkette kann als Liste von Zeichen behandelt werden, wobei das erste Zeichen den Index 0 hat. Du kannst auf ein einzelnes Zeichen der Zeichenkette zugreifen, indem du eckige Klammern und den Index des Zeichens verwendest, das du abrufen möchtest.

'cat'[1];
// => 'a'

Du kannst die Anzahl der Zeichen in einer Zeichenkette ermitteln, indem du auf die Eigenschaft length zugreifst.

'cat'.length;
// => 3

Verkettung und Methoden

Die einfachste Möglichkeit, Zeichenketten zu verketten, ist der Additionsoperator +.

'I like' + ' ' + 'cats.';
// => "I like cats."

Zeichenketten bieten viele Hilfsmethoden. Eine vollständige Liste findest du in den MDN-Dokumenten zu String-Methoden. Die folgende Liste zeigt einige häufig verwendete Hilfsmethoden.

  • toUpperCase und toLowerCase – ändern die Groß- und Kleinschreibung aller Zeichen
  • trim – entfernt Leerzeichen am Anfang und Ende
  • includes, startsWith und endsWith – stellen fest, ob eine andere Zeichenkette Teil der gegebenen Zeichenkette ist
  • slice – extrahiert einen Abschnitt der Zeichenkette

Zeichenketten sind in JavaScript unveränderlich. Eine „Änderung“, zum Beispiel durch eine der oben genannten Methoden, erzeugt also immer eine neue Zeichenkette.

Anleitung

In der Stadt hat ein neuer Poesieclub eröffnet, und du spielst mit dem Gedanken, beizutreten. Weil es in der Vergangenheit Zwischenfälle gegeben hat, hat der Club eine ganz besondere Türpolitik, die du beherrschen musst, bevor du Einlass bekommst.

Es gibt zwei Türen im Poesieclub, eine vordere und eine hintere, und beide werden bewacht. Um Einlass zu bekommen, musst du das Passwort des Tages herausfinden.

Das Passwort basiert immer auf einem Gedicht und lässt sich in zwei Schritten ableiten.

  1. Der Wächter trägt das Gedicht Zeile für Zeile vor, und du musst mit einem passenden Buchstaben dieser Zeile antworten.
  2. Der Wächter nennt dir nun alle Buchstaben, mit denen du geantwortet hast, auf einmal, und du musst sie in einem bestimmten Format auf ein Stück Papier schreiben.

Die Einzelheiten des Ablaufs hängen davon ab, durch welche Tür du hineinwillst.

1. Ermittle den ersten Buchstaben eines Satzes

Um die Buchstaben für das Passwort der vorderen Tür zu bestimmen, musst du mit dem ersten Buchstaben der Gedichtzeile antworten, die der Wächter dir vorträgt.

Damit am Ende ein schönes Passwort herauskommt, verwenden die Mitglieder des Poesieclubs gern akrostische Gedichte. Das bedeutet, dass der erste Buchstabe jedes Satzes ein Wort ergibt. Hier ist ein Beispiel von einem ihrer Lieblingsautoren, Michael Lockwood.

Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave

Wenn der Wächter also Stands so high vorträgt, antwortest du S, und wenn er Huge hooves too vorträgt, antwortest du H.

Implementiere die Funktion frontDoorResponse, die eine Zeile des Gedichts als Argument entgegennimmt und den ersten Buchstaben dieser Zeile zurückgibt.

frontDoorResponse('Stands so high');
// => "S"

2. Schreib ein Wort groß

Jetzt, wo du alle richtigen Buchstaben hast, musst du nur noch das Wort richtig großschreiben, um das Passwort für die vordere Tür zu bekommen.

Implementiere die Funktion frontDoorPassword, die einen String (die kombinierten Buchstaben aus Aufgabe 1) entgegennimmt und ihn korrekt großgeschrieben zurückgibt.

frontDoorPassword('SHIRE');
// => "Shire"

frontDoorPassword('shire');
// => "Shire"

3. Ermittle den letzten Buchstaben eines Satzes

Um die Buchstaben für das Passwort der hinteren Tür zu bestimmen, musst du mit dem letzten Buchstaben der Gedichtzeile antworten, die der Wächter dir vorträgt.

Die Mitglieder des Poesieclubs sind wirklich clever. Das zuvor erwähnte Gedicht ist außerdem telestichisch, was bedeutet, dass auch der letzte Buchstabe jedes Satzes ein Wort bildet:

Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave

Wenn der Wächter Stands so high vorträgt, antwortest du h, und wenn er Huge hooves too vorträgt, antwortest du o.

Beachte, dass der Wächter manchmal stilistische Pausen macht (in Form von Leerzeichen) am Anfang oder am Ende einer Zeile. Diese Pausen musst du ignorieren, um den richtigen Buchstaben zu ermitteln.

Implementiere die Funktion backDoorResponse, die eine Zeile des Gedichts als Argument entgegennimmt und den letzten Buchstaben dieser Zeile zurückgibt, der kein Leerzeichen ist.

backDoorResponse('Stands so high');
// => "h"

backDoorResponse('Stands so high   ');
// => "h"

4. Sei höflich

Um über die hintere Tür in den Poesieclub zu kommen, musst du besonders höflich sein. Um das Passwort abzuleiten, musst du diesmal das Wort richtig großschreiben und ', please' am Ende anhängen.

Implementiere die Funktion backDoorPassword, die einen String (die kombinierten Buchstaben aus Aufgabe 3) entgegennimmt und die höfliche Version des großgeschriebenen Passworts zurückgibt.

backDoorPassword('horse');
// => "Horse, please"
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
JavaScript Exercism

Bereit, mit Türpolitik des Poesieclubs zu starten?

Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.