GeezerVison is showing developer.mozilla.org — Array.prototype.toString() - JavaScript | MDN
Array.prototype.toString()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die toString()-Methode von Array-Instanzen gibt einen String zurück, der das angegebene Array und seine Elemente darstellt.
const array = [1, 2, "a", "1a"];
console.log(array.toString());
// Expected output: "1,2,a,1a"
Ein String, der die Elemente des Arrays darstellt.
Das Array-Objekt überschreibt die toString-Methode von Object. Die toString-Methode der Arrays ruft intern join() auf, das das Array zusammenfügt und einen String zurückgibt, der jedes Array-Element durch Kommas getrennt enthält. Falls die join-Methode nicht verfügbar ist oder keine Funktion ist, wird stattdessen Object.prototype.toString verwendet, was [object Array] zurückgibt.
js 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 auf ein Array in einer Zeichenfolgenverkettung verwiesen 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 verschachtelte Arrays so aus, als wären sie abgeflacht.
js 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 eine unendliche Rekursion, indem sie die zyklische Referenz ignorieren.
js const arr = [];
arr.push(1, [3, arr, 4], 2);
console.log(arr.toString()); // 1,3,,4,2
js const array = [1, 2, "a", "1a"];
console.log(array.toString()); // "1,2,a,1a"
In Übereinstimmung mit dem Verhalten von join() behandelt toString() leere Stellen genauso wie undefined und erzeugt einen zusätzlichen Separator:
js console.log([1, , 3].toString()); // '1,,3'
toString() ist generisch. Es erwartet, dass this eine join()-Methode hat; andernfalls wird Object.prototype.toString() verwendet.
js 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]"
|