JavaScript/Objekte/Array/concat
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.
Inhaltsverzeichnis
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.
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'
Kombination von Arrays und Werten
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.
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
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
- ECMAScript 2015 (6th Edition, ECMA-262): Array.prototype.concat()
- MDN: Array.prototype.concat()
gerade
undungerade
mit je vier Zahlen. Anschließend wird über dieconcat
-Methode ein neues Array erstellt, das alle Elemente ausgerade
undungerade
enthält, und der Variablezahlen
zugewiesen.
Die erste Kontrollausgabe zeigt das neue Arrayzahlen
mit acht Einträgen. Die zwei nachfolgenden Ausgaben zeigen, dass weder das Arraygerade
nochungerade
hierbei verändert wurden und noch immer ihre vier Einträge beinhalten.