Javascript array.join () und array.toString

array join Array Elemente in String / Zeichenkette umwandeln

Javascript array.join (Trennzeichen) konvertiert die Elemente des Arrays in einen String – eine Zeichenkette.

toString kann seit ECMAScript 5 auf jedes Objekt angewendet werden. Arrays erben diese Methode toString vom Mutterschiff Object.

array.join()

Das Trennzeichen oder »Separator« (Vorgabe: Komma) trennt die einzelnen Elemente des Arrays voneinander. Der Inhalt des Arrays wird nicht geändert.

let colors = ["rot", "grau", "gelb", "blau", "rosa"];
let aString = colors.join(" || ");
	
console.log ("%c aString " + aString, "background: black; color: white");

Die Anweisung let aString = colors.join(" || "); verbindet alle Elemente des Arrays colors zu einem String und setzt " || " zwischen die vormaligen Arrayelemente. Das Ergebnis wird der Variablen aString zugewiesen.

[LOG]  aString rot || grau || gelb || blau || rosa

join() wandelt Löcher in Arrays, undefinierte Plätze und null in leere Strings um.

console.log (['kreuz',, 'karo'].join('-'));
// gibt aus: kreuz--karo

Lässt man das Trennzeichen im Aufruf weg, liefert join() automatisch einen kommagetrennten String.

Um die Elemente eines Arrays ohne Komma miteinander zu einem String zu verbinden, reicht der Aufruf von array.join() nicht. Stattdessen braucht join() einen leeren String.

let myArray = ["H", "A", "L", "L", "0"];
let myString = myArray.join("");
console.log ("%c myString " + myString, "background: black; color: white");
[LOG]  myString HALLO

array.toString() vs array.join()

und

Javascript array.toString gibt einen String mit dem spezifizierten Array und seinen Elementen zurück. Überschreibt die Methode Object.toString().
Syntax: Array.toString()

join () kann ein Array in einen kommagetrennten String liefern. Der Aufruf von toString () ruft join () auf, wenn die Methode für das Objekt existiert, und Object.prototype.toString(), wenn es für das Objekt keine Methode join gibt.

Das führt naturgemäß zu weltbewegenden hitzigen Diskussionen, welche Methode schneller ist – aber der Unterschied ist fast immer zu gering, um sich den Kopf über diese Frage zu zerbrechen: Braucht man die Kommas oder andere Trennzeichen im String, braucht man join(","). Ansonsten tendieren die diversen Tests mal zur einen, mal zur anderen Seite.

Das ginge auch noch, ist aber – so einfach es auch aussieht, die langsamste Ausführung:

let string = "value:" + array;