Die push() Methode fügt ein oder mehr Elemente am Ende eines Arrays hinzu und gibt die neue Länge des Arrays zurück.

Syntax

arr.push(element1 [, ... [, elementN]])

Parameter

elementN
Die Elemente, die am Ende des Arrays eingefügt werden.

Rückgabewert

Den neuen Wert der length Eigenschaft (Länge des Arrays), nachdem die Methode ausgeführt wurde.

Beschreibung

Die push Methode fügt Werte an das Ende eines Arrays an.

push ist absichtlich generisch gehalten. Die Methode kann mit Hilfe von call() und apply() auch auf Array ähnliche Objekte angewendet werden. Die Methode wählt anhand der length Eigenschaft den Punkt aus, an dem die Werte eingefügt werden. Falls die length Eigenschaft nicht in eine Zahl umgewandelt werden kann, wird 0 als Index verwendet. Das gilt auch für den Fall, dass die length Eigenschaft nicht vorhanden ist. Die length Eigenschaft wird daraufhin erstellt.

Obwohl Strings native, Array-ähnliche Objekte sind, sind sie in Anwendungen dieser Methode nicht geeignet, da Strings unveränderlich sind. Gleiches gilt für das native, Array-ähnliche Objekt arguments.

Beispiele

Elemente zu einem Array hinzufügen

Der folgende Quelltext erstellt ein sports Array mit zwei Elementen und fügt anschließend zwei weitere Elemente hinzu. Die Variable total enthält die neue Länge des Arrays.

var sports = ['soccer', 'baseball'];
var total = sports.push('football', 'swimming');

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

Zwei Arrays zusammenführen

Dieses Beispiel benutzt apply(), um alle Elemente eines zweiten Arrays hinzuzufügen.

Diese Methode sollte nicht benutzt werden, wenn das zweite Array (moreVegs in diesem Beispiel) sehr lang ist, weil die maximale Anzahl der Parametern, die eine Funktion haben kann, in der Praxis limitiert ist. Siehe apply() für mehr Details.

var vegetables = ['parsnip', 'potato'];
var moreVegs = ['celery', 'beetroot'];

// Fügt das zweite Array an das erste Array an
// Equivalent zu vegetables.push('celery', 'beetroot');
Array.prototype.push.apply(vegetables, moreVegs);

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

Objekte wie ein Array behandeln

Wie oben angedeutet ist, ist push extra generisch gehalten, was man zu seinem Vorteil nutzen kann. Array.prototype.push kann gut auf ein Objekt angewendet werden, wie das Beispiel zeigt. Zu beachten ist, dass kein Array erstellt wird, um eine Menge von Objekten zu speichern. Stattdessen werden die Objekte in dem Objekt selbst gespeichern, indem wir call auf der Array.prototype.push Methode einsetzen, um die Methode glauben zu lassen, wir arbeiten mit einem Array. Es funktioniert einfach, dank der Art und Weise, wie JavaScript es uns erlaubt, den Ausführungskontext nach Belieben festzulegen.

var obj = {
    length: 0,

    addElem: function addElem(elem) {
        // obj.length wird automatisch erhöht,
        // wenn ein Objekt hinzugefügt wird 
        [].push.call(this, elem);
    }
};

// ein paar leere Objekte zu Illustrationszwecken hinzufügen
obj.addElem({});
obj.addElem({});
console.log(obj.length);
// → 2

Zu beachten ist, dass obj kein Array ist. Die Methode push erhöht erfolgreich die length Eigenschaft von obj, so als würde sie mit einem Array arbeiten.

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 3rd Edition (ECMA-262) Standard Initiale Definition. Implementiert in JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
Die Definition von 'Array.prototype.push' in dieser Spezifikation.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Array.prototype.push' in dieser Spezifikation.
Standard  
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'Array.prototype.push' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidFirefox für AndroidOpera für AndroidSafari auf iOSSamsung InternetNode.js
pushChrome Vollständige Unterstützung 1Edge Vollständige Unterstützung 12Firefox Vollständige Unterstützung 1IE Vollständige Unterstützung 5.5Opera Vollständige Unterstützung JaSafari Vollständige Unterstützung JaWebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung 4Opera Android Vollständige Unterstützung JaSafari iOS Vollständige Unterstützung JaSamsung Internet Android Vollständige Unterstützung Janodejs Vollständige Unterstützung Ja

Legende

Vollständige Unterstützung  
Vollständige Unterstützung

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Zuletzt aktualisiert von: mdnwebdocs-bot,