JavaScript/Objekte/Array/concat

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Mit der Methode Array.concat() (von engl. concatenate = verknüpfen) können Sie Arrays und Werte miteinander zu einem neuen Array verknüpfen.

Syntax

concat(element0, ..., elementN)

Folgende Parameter sind nötig:

  • element0, ..., elementN: ein oder mehrere Arrays oder Werte, die miteinander verknüpft werden sollen.
Es dürfen Arrays und Werte übergeben werden.

Rückgabewert ist ein Array, das alle Elemente enthält.

Anwendungsbeispiele

Die Methode erstellt zunächst ein neues Array, in dem alle Elemente enthalten sind, die der Aufrufer selber hat. Danach prüft die Methode jeden einzelnen übergebenen Parameter, ob es ein Array oder Wert ist. Handelt es sich um ein Array, dann werden alle Elemente daraus an das neue Array angehängt. Ist der Parameter ein Wert, dann wird dieser angehängt.

Beispiel
var gerade   = [2, 4, 6, 8];
var ungerade = [1, 3, 5, 7];

var zahlen   = gerade.concat(ungerade);

console.log(zahlen);    // '2,4,6,8,1,3,5,7'
console.log(gerade);    // '2,4,6,8'
console.log(ungerade);  // '1,3,5,7'
Das Beispiel definiert zunächst die zwei Arrays gerade und ungerade mit je vier Zahlen. Anschließend wird über die concat-Methode ein neues Array erstellt, das alle Elemente aus gerade und ungerade enthält, und der Variable zahlen zugewiesen.


Die erste Kontrollausgabe zeigt das neue Array zahlen mit acht Einträgen. Die zwei nachfolgenden Ausgaben zeigen, dass weder das Array gerade noch ungerade hierbei verändert wurden und noch immer ihre vier Einträge beinhalten.


Kombination von Arrays und Werten

Beispiel
var negativ = new Array(-3, -2, -1);
var positiv = new Array(1, 2);
var zahlen  = negativ.concat(0, positiv, 3);

alert(zahlen);  // "-3,-2,-1,0,1,2,3"

Im Beispiel wird ein Array negativ mit drei negativen Zahlen und ein Array positiv mit zwei positiven Zahlen definiert. Anschließend wird durch die concat-Methode ein neues Array erstellt, das alle Einträge aus dem Array negativ, die Zahl 0, alle Einträge aus dem Array positiv und die Zahl 3 hat. Das Ergebnis-Array wird in der Variable zahlen gespeichert. Die Kontrollausgabe zeigt, dass nun das Array zahlen alle Elemente enthält, und zwar in der Reihenfolge wie sie übergeben wurden.

Beachten Sie: Wenn die concat-Methode einen Parameter als Array erkennt, dann wird dieser Parameter nur auf erster Ebene durchlaufen. Enthält dieses Array Einträge, die wiederum ein Array sind, dann werden diese nicht durchlaufen sondern als Array übernommen.

Verknüpfung mehrdimensionaler Arrays

Beispiel
var mehrdimensional = new Array(["a", "b", "c"], ["d", "e", "f"]);
var primzahlen      = new Array(2, 3, 5, 7, 11, 13, 17);
var zahlen          = mehrdimensional.concat(primzahlen);

alert(zahlen.join("|"));  // "a,b,c|d,e,f|2|3|5|7|11|13|17"
alert(zahlen.length);     // 9

In diesem Beispiel wird ein mehrdimensionales Array namens mehrdimensional erstellt. Es enthält zwei Einträge, die wiederum ein Array sind (hier in Literal-Schreibweise). Der erste Eintrag ist ein Array mit den Zeichenketten "a", "b" und "c". Der zweite Eintrag ist ein Array mit den Zeichenketten "d", "e" und "f". Danach wird ein Array namens primzahlen definiert. Es enthält sieben Primzahlen. Anschließend wird durch die concat-Methode ein neues Array erstellt, das alle Einträge aus dem Array mehrdimensional und dem Array primzahlen hat. Das Ergebnis wird in der Variable zahlen gespeichert. Die Kontrollausgabe verbindet nun durch die join-Methode alle Elemente aus dem Array zahlen mit der Trennzeichenfolge "|" zu einer Zeichenkette. Die join-Methode durchläuft hierbei alle Einträge, konvertiert diese in Zeichenfolgen und verbindet sie mit der Trennzeichenfolge.


Es fällt auf, dass "a,b,c" und "d,e,f" nicht die benannte Trennzeichenfolge haben. Grund hierfür ist, dass bei einer Konvertierung eines Arrays in eine Zeichenfolge als Standard-Trennungszeichen ein Komma genutzt wird. Und genau das ist passiert, da das erste und zweite Element aus dem Array zahlen, die zwei Einträge aus dem Array mehrdimensional sind, und diese waren Arrays.

Weblinks