Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Array.prototype.push()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Diepush() Methode vonArray Instanzen fügt die angegebenen Elemente am Ende eines Arrays hinzu und gibt die neue Länge des Arrays zurück.
In diesem Artikel
Probieren Sie es aus
const animals = ["pigs", "goats", "sheep"];const count = animals.push("cows");console.log(count);// Expected output: 4console.log(animals);// Expected output: Array ["pigs", "goats", "sheep", "cows"]animals.push("chickens", "cats", "dogs");console.log(animals);// Expected output: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]Syntax
push()push(element1)push(element1, element2)push(element1, element2, /* …, */ elementN)Parameter
element1, …,elementNDas bzw. die Elemente, die am Ende des Arrays hinzugefügt werden sollen.
Rückgabewert
Die neueLänge Eigenschaft des Objekts, auf dem die Methode aufgerufen wurde.
Beschreibung
Diepush() Methode fügt Werte zu einem Array hinzu.
Array.prototype.unshift() hat ein ähnliches Verhalten wiepush(), wird jedoch auf den Anfang eines Arrays angewendet.
Diepush() Methode ist einemutierende Methode. Sie ändert die Länge und den Inhalt vonthis. Falls Sie möchten, dass der Wert vonthis gleich bleibt, aber ein neues Array mit Elementen am Ende zurückgegeben werden soll, können Sie stattdessenarr.concat([element0, element1, /* ... ,*/ elementN]) verwenden. Beachten Sie, dass die Elemente in ein zusätzliches Array eingepackt werden — andernfalls, wenn das Element selbst ein Array ist, würde es aufgrund des Verhaltens vonconcat() verteilt statt als einzelnes Element angehängt werden.
Diepush() Methode istgenerisch. Sie erwartet nur, dass derthis Wert einelength Eigenschaft und Integer-Indexierte Eigenschaften hat. Obwohl Strings auch Array-ähnlich sind, ist diese Methode nicht dafür geeignet, auf ihnen angewendet zu werden, da Strings unveränderlich sind.
Beispiele
>Hinzufügen von Elementen zu einem Array
Der folgende Code erstellt dassports Array, das zwei Elemente enthält, und fügt dann zwei Elemente hinzu. Dietotal Variable enthält die neue Länge des Arrays.
const sports = ["soccer", "baseball"];const total = sports.push("football", "swimming");console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']console.log(total); // 4Zusammenführen von zwei Arrays
Dieses Beispiel verwendet dieSpread-Syntax, um alle Elemente eines zweiten Arrays in das erste zu übernehmen.
const vegetables = ["parsnip", "potato"];const moreVegs = ["celery", "beetroot"];// Merge the second array into the first onevegetables.push(...moreVegs);console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']Das Zusammenführen von zwei Arrays kann auch mit derconcat() Methode durchgeführt werden.
Aufruf von push() auf Nicht-Array-Objekten
Diepush() Methode liest dielength Eigenschaft vonthis. Sie setzt dann jeden Index vonthis, beginnend beilength, mit den anpush() übergebenen Argumenten und schließlich setzt sie dielength auf die vorherige Länge plus die Anzahl der hinzugefügten Elemente.
const arrayLike = { length: 3, unrelated: "foo", 2: 4,};Array.prototype.push.call(arrayLike, 1, 2);console.log(arrayLike);// { '2': 4, '3': 1, '4': 2, length: 5, unrelated: 'foo' }const plainObj = {};// There's no length property, so the length is 0Array.prototype.push.call(plainObj, 1, 2);console.log(plainObj);// { '0': 1, '1': 2, length: 2 }Verwenden eines Objekts auf Array-ähnliche Weise
Wie oben erwähnt, istpush absichtlich generisch, und wir können das zu unserem Vorteil nutzen.Array.prototype.push kann bei einem Objekt genauso gut funktionieren, wie dieses Beispiel zeigt.
Beachten Sie, dass wir kein Array erstellen, um eine Sammlung von Objekten zu speichern. Stattdessen speichern wir die Sammlung direkt auf dem Objekt und verwendencall aufArray.prototype.push, um die Methode zu täuschen, dass wir es mit einem Array zu tun haben — und es funktioniert einfach, dank der Art und Weise, wie JavaScript es uns ermöglicht, den Ausführungskontext beliebig festzulegen.
const obj = { length: 0, addElem(elem) { // obj.length is automatically incremented // every time an element is added. [].push.call(this, elem); },};// Let's add some empty objects just to illustrate.obj.addElem({});obj.addElem({});console.log(obj.length); // 2Beachten Sie, dass, obwohlobj kein Array ist, die Methodepush erfolgreich dielength Eigenschaft vonobj inkrementiert hat, als hätten wir es mit einem echten Array zu tun gehabt.
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.push> |