Signatur
Beschreibung
Die Methode concat() von Array-Instanzen wird verwendet, um zwei oder mehr Arrays zusammenzuführen. Diese Methode verändert die vorhandenen Arrays nicht, sondern gibt stattdessen ein neues Array zurück.
Die Methode concat erstellt ein neues Array. Das Array wird zunächst mit den Elementen des Objekts befüllt, auf dem sie aufgerufen wurde. Danach wird für jedes Argument dessen Wert an das Array angehängt — bei normalen Objekten oder primitiven Werten wird das Argument selbst zu einem Element des resultierenden Arrays; bei Arrays oder array-artigen Objekten mit der Eigenschaft Symbol.isConcatSpreadable, die auf einen truthy-Wert gesetzt ist, wird jedes Element des Arguments einzeln in das resultierende Array eingefügt. Die Methode concat steigt nicht rekursiv in verschachtelte Array-Argumente ab.
Die Methode concat() ist eine kopierende Methode. Sie verändert weder this noch eines der als Argumente übergebenen Arrays, sondern gibt eine shallow copy zurück, die dieselben Elemente wie die ursprünglichen Arrays enthält.
Die Methode concat() erhält leere Slots, wenn eines der Quell-Arrays sparse (dünn besetzt) ist.
Die Methode concat() ist generisch. Der this-Wert wird auf dieselbe Weise behandelt wie die anderen Argumente (außer, dass er zuerst in ein Objekt konvertiert wird), was bedeutet, dass einfache Objekte direkt am Anfang des resultierenden Arrays eingefügt werden, während array-artige Objekte mit truthy [Symbol.isConcatSpreadable] in das resultierende Array gespreadet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value1, …, valueN | any | — | Arrays und/oder Werte, die zu einem neuen Array zusammengeführt werden sollen. Werden alle valueN-Parameter weggelassen, gibt concat eine shallow copy des bestehenden Arrays zurück, auf dem sie aufgerufen wurde. Siehe die Beschreibung für weitere Details. |
Rückgabewert
Beispiele
Zwei Arrays zusammenführen
const letters = ["a", "b", "c"];
const numbers = [1, 2, 3];
const alphaNumeric = letters.concat(numbers);
console.log(alphaNumeric);
// results in ['a', 'b', 'c', 1, 2, 3]
Drei Arrays zusammenführen
const num1 = [1, 2, 3];
const num2 = [4, 5, 6];
const num3 = [7, 8, 9];
const numbers = num1.concat(num2, num3);
console.log(numbers);
// results in [1, 2, 3, 4, 5, 6, 7, 8, 9]
Werte an ein Array anhängen
const letters = ["a", "b", "c"];
const alphaNumeric = letters.concat(1, [2, 3]);
console.log(alphaNumeric);
// results in ['a', 'b', 'c', 1, 2, 3]
Verschachtelte Arrays zusammenführen
const num1 = [[1]];
const num2 = [2, [3]];
const numbers = num1.concat(num2);
console.log(numbers);
// results in [[1], 2, [3]]
// modify the first element of num1
num1[0].push(4);
console.log(numbers);
// results in [[1, 4], 2, [3]]
Array-artige Objekte mit Symbol.isConcatSpreadable zusammenführen
const obj1 = { 0: 1, 1: 2, 2: 3, length: 3 };
const obj2 = { 0: 1, 1: 2, 2: 3, length: 3, [Symbol.isConcatSpreadable]: true };
console.log([0].concat(obj1, obj2));
// [ 0, { '0': 1, '1': 2, '2': 3, length: 3 }, 1, 2, 3 ]
concat() bei sparse Arrays verwenden
console.log([1, , 3].concat([4, 5])); // [1, empty, 3, 4, 5]
console.log([1, 2].concat([3, , 5])); // [1, 2, 3, empty, 5]
concat() auf Nicht-Array-Objekten aufrufen
console.log(Array.prototype.concat.call({}, 1, 2, 3)); // [{}, 1, 2, 3]
console.log(Array.prototype.concat.call(1, 2, 3)); // [ [Number: 1], 2, 3 ]
const arrayLike = {
[Symbol.isConcatSpreadable]: true,
length: 2,
0: 1,
1: 2,
2: 99, // ignored by concat() since length is 2
};
console.log(Array.prototype.concat.call(arrayLike, 3, 4)); // [1, 2, 3, 4]