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()
array.toStringkann seit ECMAScript 5 auf jedes Objekt angewendet werden. Arrays erben die Methode toString vom Mutterschiff Object.
Javascript array.toString gibt einen String mit dem angegebenen Array und seinen Elementen zurück und überschreibt die Methode Object.toString().
Syntax: Array.toString()
const names = ["Indiana Jones", "Melinda Joch", "Apple iOS", "Windows 11"]; let text = names.toString(); console.log (text);
Indiana Jones,Melinda Joch,Apple iOS,Windows 11
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;