Dieser Inhalt wurde automatisch aus dem Englischen รผbersetzt, und kann Fehler enthalten. Erfahre mehr รผber dieses Experiment.

View in English Always switch to English

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โฉ.

Die push() Methode von Array Instanzen fรผgt die angegebenen Elemente am Ende eines Arrays hinzu und gibt die neue Lรคnge des Arrays zurรผck.

Probieren Sie es aus

const animals = ["pigs", "goats", "sheep"];

const count = animals.push("cows");
console.log(count);
// Expected output: 4
console.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

js
push()
push(element1)
push(element1, element2)
push(element1, element2, /* โ€ฆ, */ elementN)

Parameter

element1, โ€ฆ, elementN

Das bzw. die Elemente, die am Ende des Arrays hinzugefรผgt werden sollen.

Rรผckgabewert

Die neue Lรคnge Eigenschaft des Objekts, auf dem die Methode aufgerufen wurde.

Beschreibung

Die push() Methode fรผgt Werte zu einem Array hinzu.

Array.prototype.unshift() hat ein รคhnliches Verhalten wie push(), wird jedoch auf den Anfang eines Arrays angewendet.

Die push() Methode ist eine mutierende Methode. Sie รคndert die Lรคnge und den Inhalt von this. Falls Sie mรถchten, dass der Wert von this gleich bleibt, aber ein neues Array mit Elementen am Ende zurรผckgegeben werden soll, kรถnnen Sie stattdessen arr.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 von concat() verteilt statt als einzelnes Element angehรคngt werden.

Die push() Methode ist generisch. Sie erwartet nur, dass der this Wert eine length 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 das sports Array, das zwei Elemente enthรคlt, und fรผgt dann zwei Elemente hinzu. Die total Variable enthรคlt die neue Lรคnge des Arrays.

js
const sports = ["soccer", "baseball"];
const total = sports.push("football", "swimming");

console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
console.log(total); // 4

Zusammenfรผhren von zwei Arrays

Dieses Beispiel verwendet die Spread-Syntax, um alle Elemente eines zweiten Arrays in das erste zu รผbernehmen.

js
const vegetables = ["parsnip", "potato"];
const moreVegs = ["celery", "beetroot"];

// Merge the second array into the first one
vegetables.push(...moreVegs);

console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']

Das Zusammenfรผhren von zwei Arrays kann auch mit der concat() Methode durchgefรผhrt werden.

Aufruf von push() auf Nicht-Array-Objekten

Die push() Methode liest die length Eigenschaft von this. Sie setzt dann jeden Index von this, beginnend bei length, mit den an push() รผbergebenen Argumenten und schlieรŸlich setzt sie die length auf die vorherige Lรคnge plus die Anzahl der hinzugefรผgten Elemente.

js
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 0
Array.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, ist push 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 verwenden call auf Array.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.

js
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); // 2

Beachten Sie, dass, obwohl obj kein Array ist, die Methode push erfolgreich die length Eigenschaft von obj inkrementiert hat, als hรคtten wir es mit einem echten Array zu tun gehabt.

Spezifikationen

Specification
ECMAScriptยฎ 2026 Language Specification
# sec-array.prototype.push

Browser-Kompatibilitรคt

Siehe auch