Array-Methoden
Auf der Farbseite hat Überschreiben die Anzahl nicht angetastet. Diesmal liegt ein Einkauf vor dir, mit Brot, Milch und Eiern. Ein Aufruf darf diese Posten vermehren oder verringern.
Die Anzahl darf sich bewegen
Diese fünf Aufrufe ändern die Liste, die du schon hast, nicht einen frischen Text wie die Werkzeuge für Zeichenketten und nicht eine Funktion, die du selbst auf ein Objekt gelegt hast. push, pop, unshift, shift und splice sind fertige Werkzeuge der Liste.
Fünf Aufrufe auf einer Karte
Lass die Karte neben den Beispielen liegen, damit du nicht jedes Mal nach oben blätterst. Oft ist der Wert, der zurückkommt, nicht der Korb. Es ist eine Zahl, der Posten, der ging, oder eine kleine Liste.
📊 Fünf Aufrufe für die Liste
| Aufruf | Wo er wirkt | Was zurückkommt | length |
|---|---|---|---|
push |
Ende | die neue Länge | wächst um so viele Posten, wie du gabst |
pop |
Ende | der entfernte Posten | sinkt um eins |
unshift |
vorn | die neue Länge | wächst um so viele Posten, wie du gabst |
shift |
vorn | der entfernte Posten | sinkt um eins |
splice |
eine Stelle, die du wählst | eine kleine Liste der entfernten Posten | sinkt um die Löschzahl |
Aufrufe, die etwas hinzufügen, geben die neue Länge als Zahl zurück, und Aufrufe, die von einem Ende nehmen, geben den Posten selbst. splice gibt selbst beim Löschen einer einzigen Stelle eine kleine Liste zurück, und das Wort sitzt an Stelle 0 dieses Ergebnisses.
Tee am Ende
Der Korb beginnt mit Brot, Milch und Eiern. push legt Tee hinter die Eier. Die Zahl, die du sofort hörst, ist die jetzige Zahl der Fächer.
let cart = ["bread", "milk", "eggs"];
let n = cart.push("tea");
console.log(n);
console.log(cart[3]);
console.log(cart.length);
n ist 4, also die neue Länge, nicht das Wort tea. Stelle 3 hält den Tee, und length ist ebenfalls 4, weil nur ein Posten angehängt wurde. Zwei Argumente würden zwei Fächer Wachstum bedeuten. Hier gibt es ein Argument, damit die Zahl leicht zu lesen bleibt.
let cart = ["bread", "milk", "eggs"];
let gone = cart.pop();
console.log(gone);
console.log(cart.length);
Der letzte Posten geht
pop hebt die Eier vom Ende und gibt diese Zeichenkette zurück, und length wird 2. Im Korb bleiben Brot und danach Milch. Dieser Aufruf gibt die neue Länge nicht zurück. Ein leerer Korb gäbe undefined, und die Beispiele dieser Seite starten nie leer.
let cart = ["bread", "milk", "eggs"];
let n = cart.unshift("tea");
console.log(n);
console.log(cart[0]);
console.log(cart[1]);
Vorn ist neu
unshift gibt ebenfalls 4 zurück, weil das die neue Länge ist, und Stelle 0 ist jetzt Tee. Brot rutscht auf Stelle 1, ohne dass ein Fach überschrieben wird. Jeder ältere Posten macht einen Schritt zum Ende.
let cart = ["bread", "milk", "eggs"];
let gone = cart.shift();
console.log(gone);
console.log(cart[0]);
console.log(cart.length);
Vorn wird leer
shift gibt Brot zurück, also den Posten, der ging, nicht eine Länge. Danach ist Stelle 0 die Milch, und length ist 2. Die Eier sind immer noch letzte. Sie sitzen nur noch auf Stelle 1.
let cart = ["bread", "milk", "eggs"];
let removed = cart.splice(1, 1);
console.log(removed[0]);
console.log(cart.length);
console.log(cart[1]);
Ein Fach, das du gewählt hast
Das erste Argument ist die Startstelle, das zweite sagt, wie viele Fächer weg sollen. Milch geht, und removed ist eine Liste mit einem Fach, also ist removed[0] Milch und nicht der Aufruf selbst die Zeichenkette Milch. length wird 2 und Stelle 1 sind die Eier, weil Brot auf 0 blieb und die Eier die Lücke schlossen. Übergibst du 0 als Löschzahl, wird eingefügt, ohne zu löschen. Diese Form lässt du noch liegen.
Die Seite druckt die neue Länge
Füge Tee mit push hinzu. Schreib danach length in den Absatz. Die Zeile soll die Anzahl sein, nicht der Einkaufszettel.
<!DOCTYPE html>
<html>
<head>
<title>array-methods — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let cart = ["bread", "milk", "eggs"];
cart.push("tea");
let box = document.getElementById("line");
box.textContent = cart.length;
</script>
</body>
</html>
Der Absatz zeigt 4. Tausch die angeschobene Zeichenkette von Tee zu Marmelade und lade neu; die Zeile bleibt 4, weil du immer noch einen Posten hinzufügst. Das Wort hat sich geändert, die Anzahl nicht. Brot, Milch und Eier bleiben vor dem, was du mit push hineingelegt hast.
Übe an einem frischen Korb
- Lege Tee mit
pushhinter Brot, Milch und Eier und lies sowohl die zurückgegebene Zahl als auch Stelle 3. - Rufe einmal
popauf und lies das entfernte Wort samt neuer Länge, dann setze Tee mitunshiftnach vorn und sieh Stelle 0 und Stelle 1. - Rufe einmal
shiftauf, lies das gegangene Wort und die neue Stelle 0, dannspliceab Stelle 1 mit einem gelöschten Fach und halteremoved[0]neben die Länge. - Auf der Seite
pushfür Tee, neu laden, die Zeile lesen, dann Tee zu Marmelade machen und noch einmal neu laden.
Wo Punkte verloren gehen
- Du wolltest ein Fach hinzufügen und schriebst
cart[1] = "tea", oder die Klammern beipushundpopfehlten - Den Wert von
pophast du für die neue Länge gehalten - Du hast erwartet, dass
splicedie nackte Zeichenkette Milch gibt und keine Liste - Du dachtest, Stelle 0 bleibe nach
unshiftBrot, oder du hast diese Seite mit einem Gang über jeden Posten und einer Suche nach dem Wert vermischt
Das bleibt hängen
- Diese Aufrufe bearbeiten dieselbe Liste
pushundunshiftgeben die neue Länge zurück,popundshiftden Posten, der gingsplicegibt eine kleine Liste der entfernten Posten- Der Absatz kann nach
pushnur die Länge zeigen - Als Nächstes kommt das Durchlaufen, die Suche im Anschluss
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt