Array.prototype.push()

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ängen des Arrays), nachdem die Methode aufgefugen 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 beinhaltete die Möglichkeit, dass die length Eigenschaft nicht vorhanden ist. In diesem Fall wird die length Eigenschaft erstellt.

Die einzigen nativen Array ähnlichen Objekte sind Strings, jedoch hat die push Methode keinen Erfolg da Strings unveränderlich sind.

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

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

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']

Einsatz eines Objektes in einer Array ähnlichen Form

Wie oben angedeutet ist, ist push extra generisch gehalten, was man zu seinem Vorteil nutzen kann. Array.prototype.push kann auf einem Objekt gut arbeiten, 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 einsetzt, um die Methode glauben zu lassen, wir arbeiten mit einem Array. Es Funktioniert dank der Möglichkeit von JavaScript, dass der der Ausführungskontext eingestellt werden kann.

var obj = {
    length: 0,

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

// Last uns ein paar leere Objekte hinzufügen, nur um zu zeigen, dass es funktioniert.
obj.addElem({});
obj.addElem({});
console.log(obj.length);
// → 2

Zu beachten ist, dass obj kein Array ist. Die Methode push inkrementiert 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 Initial definition. Implemented 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 2017 Draft (ECMA-262)
Die Definition von 'Array.prototype.push' in dieser Spezifikation.
Entwurf  

Browser Kompatibilität

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 1.0 (1.7 oder früher) 5.5 (Ja) (Ja)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Ja) (Ja) (Ja) (Ja) (Ja) (Ja)

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

 Mitwirkende an dieser Seite: schlagi123, marzepani, yacchatta, Arminmsg, fscholz, Airblader
 Zuletzt aktualisiert von: schlagi123,