Array.prototype.toString()
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 toString()
-Methode von Array
-Instanzen gibt einen String zurück, der das spezifizierte Array und seine Elemente repräsentiert.
Probieren Sie es aus
Syntax
toString()
Parameter
Keine.
Rückgabewert
Ein String, der die Elemente des Arrays repräsentiert.
Beschreibung
Das Array
-Objekt überschreibt die toString
-Methode von Object
. Die toString
-Methode von Arrays ruft intern join()
auf, welches das Array verbindet und einen String zurückgibt, der jedes Array-Element durch Kommas getrennt enthält. Wenn die join
-Methode nicht verfügbar ist oder keine Funktion ist, wird stattdessen Object.prototype.toString
verwendet, was [object Array]
zurückgibt.
const arr = [];
arr.join = 1; // re-assign `join` with a non-function
console.log(arr.toString()); // [object Array]
console.log(Array.prototype.toString.call({ join: () => 1 })); // 1
JavaScript ruft die toString
-Methode automatisch auf, wenn ein Array als Textwert dargestellt werden soll, oder wenn ein Array in einer String-Konkatenation referenziert wird.
Array.prototype.toString
konvertiert rekursiv jedes Element, einschließlich anderer Arrays, in Strings. Da der von Array.prototype.toString
zurückgegebene String keine Trennzeichen hat, sehen geschachtelte Arrays so aus, als wären sie abgeflacht.
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
console.log(matrix.toString()); // 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 endlose Rekursion, indem sie den zyklischen Verweis ignorieren.
const arr = [];
arr.push(1, [3, arr, 4], 2);
console.log(arr.toString()); // 1,3,,4,2
Beispiele
Verwendung von toString()
const array1 = [1, 2, "a", "1a"];
console.log(array1.toString()); // "1,2,a,1a"
Verwendung von toString() bei lückenhaften Arrays
In Übereinstimmung mit dem Verhalten von join()
behandelt toString()
leere Slots wie undefined
und erzeugt ein zusätzliches Trennzeichen:
console.log([1, , 3].toString()); // '1,,3'
Aufruf von toString() bei Nicht-Array-Objekten
toString()
ist generisch. Es erwartet, dass this
eine join()
-Methode hat; falls nicht, verwendet es stattdessen Object.prototype.toString()
.
console.log(Array.prototype.toString.call({ join: () => 1 }));
// 1; a number
console.log(Array.prototype.toString.call({ join: () => undefined }));
// undefined
console.log(Array.prototype.toString.call({ join: "not function" }));
// "[object Object]"
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-array.prototype.tostring |
Browser-Kompatibilität
BCD tables only load in the browser