Javascript array.concat()

concat() zwei oder mehr Array vereinen oder kombinieren zu einem neuen Array

array.concat fügt zwei oder mehr Arrays zu einem neuen Array zusammen. concat() ist nicht destruktiv: Das neue Array wird zurückgegeben und die Original-Arrays bleiben erhalten.

Javascript concat(e1 [, e2 ... eN]) hängt neue Elemente an das Ende eines Arrays. Wenn ein neues Element ein Array ist, wird es linearisiert und seine Elemente werden am Ende des Arrays eingefügt. Das Original des angehangenen Arrays bleibt aber erhalten.

const arr1 = [10, 20, 30];
const e     = 333;
const arr2 = [1000, 2000, 3000];
let result = arr1.concat(e, arr2);
 
console.log ("%c result " + result, "background: navy; color: white");

Der Aufruf arr1.concat(e, arr2) fügt zuerst 333, den Wert von e an das Ende des Arrays arr1 an und dann das linearisierte Array arr2 – also die einzelnen Werte von arr2: 1000, 2000, 3000.

[LOG]  result 10,20,30,333,1000,2000,3000

Wenn arr2 allerdings ein verschachteltes Array ist, wird die Linearisierung nur auf der ersten Ebene durchgeführt.

const arr1 = [10, 20, 30];
const arr2 = [[33, 44, 55], [66, 77, 88]];
let result = arr1.concat(arr2);  
console.log ("result " + result);
console.log ("result [7] " + result[7]);
console.log ("result [4] " + result[4]);
console.log ("result [4][2] " + result[4][2]);
[LOG]  result 10,20,30,33,44,55,66,77,88
[Log]  result [7] undefined // Linearisiert nur auf Ebene 1!
[Log]  result [4] 66,77,88 // Auf Index 4 liegt ein Array
[Log]  result [4][2] 88

Das Resultat von concat() in diesem Beispiel ist also ein Array mit 5 Elementen, Element 4 und 5 sind selber wieder Arrays.

Auch wenn die Browser-Konsole beim Aufruf von console.log das resultierende Array mit 9 Elemente zeigt (10,20,30,33,44,55,66,77,88), gibt es keinen Index 7. Stattdessen liegt auf Platz 4 des Arrays result ein Array mit den Werten 66,77,88.

Die Struktur von result ist

 0    1   2      3            4
[10, 20, 30, [33,44,55], [66,77,88]]
Javascript Array concat() concat array