Signatur
Beschreibung
Die Methode join() wandelt jedes Element eines typisierten Arrays (z. B. Uint8Array, Float32Array, BigInt64Array) in einen String um und fügt diese Strings zu einem einzigen neuen String zusammen. Zwischen die Elemente wird der angegebene Trennstring gesetzt. Ohne Argument ist das ein Komma ",".
Sie arbeitet nach demselben Algorithmus wie Array.prototype.join(). Weil ein typisiertes Array nur Zahlen bzw. BigInts enthält, gibt es hier aber keine Lücken und keine Sonderbehandlung von null/undefined. Das Array selbst bleibt unverändert.
Typische Einsatzfälle: Binärdaten zum Debuggen lesbar ausgeben, Messwerte als CSV-Zeile serialisieren oder Bytes als Hex-String darstellen (zusammen mit Array.from() oder map()).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $separator | string | "," | Trennstring, der zwischen zwei benachbarte Elemente gesetzt wird. Andere Werte werden in einen String umgewandelt. Bei undefined wird ein Komma verwendet, bei "" werden die Elemente ohne Trennzeichen aneinandergehängt. |
Rückgabewert
separator. Ist das Array leer (length === 0), ist das Ergebnis der leere String "".Beispiele
Standard-Trenner und eigener Trenner
const bytes = new Uint8Array([10, 20, 30]);
console.log(bytes.join()); // Komma als Standard
console.log(bytes.join(' | '));
console.log(bytes.join(''));
Messwerte als CSV-Zeile exportieren
const messwerte = new Float32Array([21.5, 22.25, 19.75]);
const kopfzeile = ['Sensor1', 'Sensor2', 'Sensor3'].join(';');
const datenzeile = messwerte.join(';');
const csv = `${kopfzeile}\n${datenzeile}`;
console.log(csv);
Bytes als Hex-String darstellen
const hash = new Uint8Array([0xde, 0xad, 0xbe, 0xef, 0x07]);
// map() auf dem TypedArray liefert wieder Zahlen, daher Array.from nutzen
const hex = Array.from(hash, (b) => b.toString(16).padStart(2, '0')).join('');
console.log(hex);
// Direkt: Dezimalwerte mit Leerzeichen
console.log(hash.join(' '));
BigInt-Array und leeres Array
const gross = new BigInt64Array([1n, -2n, 9007199254740993n]);
console.log(gross.join(', '));
console.log(JSON.stringify(new Int16Array(0).join('-')));
// Wichtig · Fallstricke
- Kein Umweg über
map()für Strings:typedArray.map(x => x.toString(16))liefert wieder ein typisiertes Array desselben Typs. Die Strings werden dabei zurück in Zahlen umgewandelt (meist0oderNaN). Für formatierte Ausgaben deshalb zuerst mitArray.from()umwandeln. - Gleitkomma-Darstellung:
Float32Arrayspeichert Werte mit einfacher Genauigkeit.new Float32Array([0.1]).join()ergibt deshalb"0.10000000149011612", nicht"0.1". join()ist nicht generisch: Mitcall()auf ein Objekt angewendet, das kein typisiertes Array ist, wirft die Methode einenTypeError. Das gilt auch für ein Array, dessenArrayBufferabgelöst (detached) wurde.toString()eines typisierten Arrays entsprichtjoin(",").toLocaleString()formatiert die Zahlen dagegen nach der Gebietsschema-Einstellung.- Bei sehr großen Arrays entsteht ein entsprechend großer String. Für Binärdaten sind
TextDecoderoder Base64 oft effizienter. - Kompatibilität: Baseline, wird seit ES2015 von allen modernen Browsern und Node.js unterstützt.