Array.prototype.join()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die join()
-Methode von Array
-Instanzen erstellt und gibt einen neuen String zurück, indem alle Elemente in diesem Array verkettet werden, getrennt durch Kommas oder einen angegebenen Trennzeichen-String. Wenn das Array nur ein Element enthält, wird dieses Element ohne Verwendung des Trennzeichens zurückgegeben.
Probieren Sie es aus
Syntax
join()
join(separator)
Parameter
separator
Optional-
Ein String, um jedes Paar benachbarter Elemente des Arrays zu trennen. Wenn weggelassen, werden die Array-Elemente mit einem Komma (",") getrennt.
Rückgabewert
Ein String mit allen verbundenen Array-Elementen. Wenn array.length
0
ist, wird der leere String zurückgegeben.
Beschreibung
Die String-Konvertierungen aller Array-Elemente werden zu einem String zusammengefügt. Wenn ein Element undefined
oder null
ist, wird es in einen leeren String umgewandelt, anstatt in den String "null"
oder "undefined"
.
Die join
-Methode wird intern von Array.prototype.toString()
ohne Argumente aufgerufen. Das Überschreiben von join
einer Array-Instanz überschreibt auch das Verhalten von toString
.
Array.prototype.join
konvertiert rekursiv jedes Element, einschließlich anderer Arrays, in Strings. Da der von Array.prototype.toString
zurückgegebene String (was dem Aufruf von join()
entspricht) keine Trennzeichen hat, sehen geschachtelte Arrays aus, als wären sie abgeflacht. Sie können nur den Trennzeichen der ersten Ebene steuern, während tiefere Ebenen immer das Standardkomma verwenden.
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
console.log(matrix.join()); // 1,2,3,4,5,6,7,8,9
console.log(matrix.join(";")); // 1,2,3;4,5,6;7,8,9
Wenn ein Array zyklisch ist (es enthält ein Element, das es selbst ist), vermeiden Browser eine unendliche Rekursion, indem sie die zyklische Referenz ignorieren.
const arr = [];
arr.push(1, [3, arr, 4], 2);
console.log(arr.join(";")); // 1;3,,4;2
Wenn die Methode auf dünn besetzte Arrays angewendet wird, iteriert die join()
-Methode die leeren Plätze, als ob sie den Wert undefined
hätten.
Die join()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft und integer-indizierte Eigenschaften hat.
Beispiele
Ein Array auf vier verschiedene Arten verbinden
Das folgende Beispiel erstellt ein Array a
mit drei Elementen und verbindet dann das Array viermal: mit dem Standardtrennzeichen, dann mit einem Komma und einem Leerzeichen, dann mit einem Plus und einem leeren String.
const a = ["Wind", "Water", "Fire"];
a.join(); // 'Wind,Water,Fire'
a.join(", "); // 'Wind, Water, Fire'
a.join(" + "); // 'Wind + Water + Fire'
a.join(""); // 'WindWaterFire'
Verwendung von join() auf dünn besetzten Arrays
join()
behandelt leere Plätze genauso wie undefined
und erzeugt einen zusätzlichen Trenner:
console.log([1, , 3].join()); // '1,,3'
console.log([1, undefined, 3].join()); // '1,,3'
Aufruf von join() auf Nicht-Array-Objekten
Die join()
-Methode liest die length
-Eigenschaft von this
und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nichtnegative ganze Zahl kleiner als length
ist.
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 5, // ignored by join() since length is 3
};
console.log(Array.prototype.join.call(arrayLike));
// 2,3,4
console.log(Array.prototype.join.call(arrayLike, "."));
// 2.3.4
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-array.prototype.join |
Browser-Kompatibilität
BCD tables only load in the browser