Tracks
/
JavaScript
JavaScript
/
Übungen
/
Elyses Verzauberungen
Elyses Verzauberungen

Elyses Verzauberungen

Lernübung

Einführung

In JavaScript ist ein Array eine listenartige Struktur ohne feste Länge, die jeden Typ von primitiven Werten oder Objekten aufnehmen kann, sogar gemischte Typen.

Um ein Array zu erstellen, schreibst du die Elemente zwischen eckige Klammern []. Um aus dem Array zu lesen, setzt du den Index in eckige Klammern [] hinter den Bezeichner. Die Indizes eines Arrays beginnen bei null.

Zum Beispiel:

const numbers = [1, 'two', 3, 'four'];
numbers[2];
// => 3

Um die Anzahl der Elemente in einem Array zu ermitteln, verwendest du die Eigenschaft length:

const numbers = [1, 'two', 3, 'four'];
numbers.length;
// => 4

Um ein Element im Array zu ändern, weist du dem Index einen Wert zu:

const numbers = [1, 'two', 3, 'four'];
numbers[0] = 'one';
numbers;
// => ['one', 'two', 3, 'four']

Methoden

Einige der Methoden, die auf jedem Array-Objekt verfügbar sind, kannst du verwenden, um etwas zum Array hinzuzufügen oder daraus zu entfernen. Hier sind ein paar, die du bei dieser Übung beachten solltest:

push

Ein value kann mit .push(value) an das Ende eines Arrays hinzugefügt werden. Die Methode gibt die neue Länge des Arrays zurück.

const numbers = [1, 'two', 3, 'four'];
numbers.push(5); // => 5
numbers;
// => [1, 'two', 3, 'four', 5]

pop

Der letzte value kann mit .pop() aus einem Array entfernt werden. Die Methode gibt den entfernten Wert zurück. Die Länge des Arrays verringert sich durch diese Änderung.

const numbers = [1, 'two', 3, 'four'];
numbers.pop(); // => four
numbers;
// => [1, 'two', 3]

shift

Der erste value kann mit .shift() aus einem Array entfernt werden. Die Methode gibt den entfernten Wert zurück. Die Länge des Arrays verringert sich durch diese Änderung.

const numbers = [1, 'two', 3, 'four'];
numbers.shift(); // => 1
numbers;
// => ['two', 3, 'four']

unshift

Ein value kann mit .unshift(value) an den Anfang eines Arrays hinzugefügt werden. Die Methode gibt die neue Länge des Arrays zurück.

const numbers = [1, 'two', 3, 'four'];
numbers.unshift('one'); // => 5
numbers;
// => ['one', 1, 'two', 3, 'four']

splice

Ein value an einem bestimmten index kann mit .splice(index, 1) aus einem Array entfernt werden. Die Methode gibt das entfernte Element bzw. die entfernten Elemente zurück.

const numbers = [1, 'two', 3, 'four'];
numbers.splice(2, 1, 'one'); // => [3]
numbers;
// => [1, 'two', 'one', 'four']
Advanced

Diese Methoden sind mächtiger, als hier beschrieben:

  • Sowohl push als auch unshift erlauben es dir, mehrere Werte auf einmal hinzuzufügen, indem du weitere Argumente angibst. Das ist für diese Übung nicht nötig.
  • Splice kann mehrere Werte entfernen, indem du das zweite Argument erhöhst. Das ist für diese Übung nicht nötig.
  • Splice kann auch mehrere Werte hinzufügen, indem du sie als Argumente nach dem deleteCount angibst. Damit kannst du Werte ersetzen oder Werte in der Mitte eines Arrays einfügen (zum Beispiel, indem du 0 Elemente entfernst). Das ist für diese Übung nicht nötig.

Anleitung

Als angehende Magierin muss Elyse ein paar Grundlagen üben. Sie hat einen Stapel Karten, den sie manipulieren möchte.

Um es etwas einfacher zu machen, benutzt sie nur die Karten 1 bis 10, sodass ihr Kartenstapel durch ein Array von Zahlen dargestellt werden kann. Die Position einer bestimmten Karte entspricht dem Index im Array. Das heißt, Position 0 verweist auf die erste Karte, Position 1 auf die zweite Karte usw.

Note

Bis auf zwei Funktionen sollten alle das Array der Karten aktualisieren und dann das geänderte Array zurückgeben. Das ist eine gängige Vorgehensweise, die als Builder-Muster bekannt ist und mit der du Funktionen schön verketten kannst.

Die beiden Ausnahmen sind getItem, das die Karte an der angegebenen Position zurückgeben sollte, und checkSizeOfStack, das true zurückgeben sollte, wenn die angegebene Größe übereinstimmt.

1. Eine Karte aus einem Stapel holen

Um eine Karte zu ziehen, gib die Karte am Index position aus dem angegebenen Stapel zurück.

const position = 2;
getItem([1, 2, 4, 1], position);
// => 4

2. Eine Karte im Stapel austauschen

Führe ein paar Fingerfertigkeiten vor und tausche die Karte am Index position gegen die angegebene Ersatzkarte aus. Gib den angepassten Stapel zurück.

const position = 2;
const replacementCard = 6;
setItem([1, 2, 4, 1], position, replacementCard);
// => [1, 2, 6, 1]

3. Eine Karte oben auf den Stapel legen

Lass eine Karte erscheinen, indem du eine neue Karte oben auf den Stapel legst. Gib den angepassten Stapel zurück.

const newCard = 8;
insertItemAtTop([5, 9, 7, 1], newCard);
// => [5, 9, 7, 1, 8]

4. Eine Karte aus dem Stapel entfernen

Lass eine Karte verschwinden, indem du die Karte an der angegebenen position aus dem Stapel entfernst. Gib den angepassten Stapel zurück.

const position = 2;
removeItem([3, 2, 6, 4, 8], position);
// => [3, 2, 4, 8]

5. Die oberste Karte vom Stapel entfernen

Lass eine Karte verschwinden, indem du die oberste Karte vom Stapel entfernst. Gib den angepassten Stapel zurück.

removeItemFromTop([3, 2, 6, 4, 8]);
// => [3, 2, 6, 4]

6. Eine Karte unten an den Stapel anfügen

Lass eine Karte erscheinen, indem du eine neue Karte unten an den Stapel anfügst. Gib den angepassten Stapel zurück.

const newCard = 8;
insertItemAtBottom([5, 9, 7, 1], newCard);
// => [8, 5, 9, 7, 1]

7. Eine Karte von unten vom Stapel entfernen

Lass eine Karte verschwinden, indem du die unterste Karte vom Stapel entfernst. Gib den angepassten Stapel zurück.

removeItemAtBottom([8, 5, 9, 7, 1]);
// => [5, 9, 7, 1]

8. Die Größe des Stapels prüfen

Prüfe, ob die Größe des Stapels gleich stackSize ist oder nicht.

const stackSize = 4;
checkSizeOfStack([3, 2, 6, 4, 8], stackSize);
// => false
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
JavaScript Exercism

Bereit, mit Elyses Verzauberungen zu starten?

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