Der Browser-Speicher localStorage ist nicht verfügbar. Entweder unterstützt dein Browser ihn nicht oder du hast ihn deaktiviert oder er ist voll. Ohne localStorage werden deine Lösungen nicht gespeichert.
Array: shift() und push()
Arrays besitzen eine Reihe von Methoden. Zwei dieser Methoden sind
Mit der häufig verwendeten Methode
shift
und push
.
Zur Erinnerung: Methoden sind Funktionen, die auf einem Objekt, hier einem Array, ausgeführt werden. Methoden werden mit einem Punkt
an das Objekt angehängt. Wie bei Funktionen üblich folgt dem Methodennamen die runden Klammern, ggf. gefüllt mit Parametern.
shift
hat keine Parameter und verschiebt die Elemente eines Arrays nach links.
Das 1te Element wird zum 0ten, das 2te zum 1ten, das 3te zum 2ten, usw.
Das 0te Element wird aus dem Array entfernt und zurückgegeben. Nach dem shift
hat das Array ein Element weniger.
let sprachen = ['C', 'Java', 'JavaScript'];
let naechsteSprache = sprachen.shift();
Das Array sprachen
wird mit 3 Programmiersprachen angelegt.
Nach dem shift
enthält sprachen
nur noch 2 Elemente,
nämlich ['Java', 'JavaScript']
. Der Wert 'C'
ist in der Variablen
naechsteSprache
gelandet.Mit der häufig verwendeten Methode
push
fügt man dem Array ein neues Element hinzu.
Das neue Element wird als Parameter übergeben und an das Ende des Arrays gehängt.
let sprachen = [];
sprachen.push('C');
sprachen.push('Java');
sprachen.push('JavaScript');
Hier wird ein leeres Array nacheinander mit den aufgeführten Werten gefüllt. Am Ende erhalten wir das Array
['C', 'Java', 'JavaScript']
. Wir hatten gesehen, dass man ein Array auch per Index füllen kann.
sprachen[sprachen.length] = 'PHP'
ist dasselbe wie sprachen.push('PHP')
. Doch schon
an der Länge des Codes sieht man, dass die Variante mit push
eleganter ist.Aufgabe
Schreibe eine Funktion
Beispiel:
rotate
, die die Elemente eines Arrays rotiert.
Alle Elemente des Arrays sollen um eine Position nach links verschoben werden.
Das 0te Element soll ans Ende des Arrays gestellt werden. Das rotierte Array soll zurückgegeben werden.Beispiel:
rotate(['a', 'b', 'c'])
sollte ['b', 'c', 'a']
ergeben.
+ Tipp
Entferne mit
shift
das 0te Element.
Füge mit push
das 0te Element wieder hinzu.
+ Lösung
function rotate(anArray) {
let element0 = anArray.shift();
anArray.push(element0);
return anArray;
}