Die Methode toLocaleString() gibt als Rückgabewert einen String zurück, welcher die Elemente des Arrays darstellt. Die Array-Elemente werden mittels ihrer toLocaleString Methode in Strings umgewandelt und durch einen sprachspezifischen String (wie zum Beispiel ein Kommazeichen “,”) separiert.
Syntax
arr.toLocaleString([locales [, options]]);
Parameter
localesOptional- Ein String mit einem Language-Tag nach BCP 47 oder ein Array solcher Strings. Für die allgemeine Art und Interpretation des
localesParameters, siehe SeiteIntl. optionsOptional- Ein Objekt mit konfigurierbaren Eigenschaften, für Numbers siehe
Number.prototype.toLocaleString(), und für Datumsangaben sieheDate.prototype.toLocaleString().
Rückgabewert
Ein einzelner String der die Elemente des Arrays darstellt.
Beispiele
Verwendung von locales und options
Die Elemente des Arrays werden mittels der toLocaleString Methode in einen String umgewandelt.
Object:Object.prototype.toLocaleString()Number:Number.prototype.toLocaleString()Date:Date.prototype.toLocaleString()
Jedem Strings und Numbers Element im Array prices die Währung zuordnen:
var prices = ['¥7', 500, 8123, 12];
prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });
// "¥7,¥500,¥8,123,¥12"
Für weitere Beispiele, siehe auch Intl, NumberFormat und DateTimeFormat.
Polyfill
// https://tc39.github.io/ecma402/#sup-array.prototype.tolocalestring
if (!Array.prototype.toLocaleString) {
Object.defineProperty(Array.prototype, 'toLocaleString', {
value: function(locales, options) {
// 1. Let O be ? ToObject(this value).
if (this == null) {
throw new TypeError('"this" is null or not defined');
}
var a = Object(this);
// 2. Let len be ? ToLength(? Get(A, "length")).
var len = a.length >>> 0;
// 3. Let separator be the String value for the
// list-separator String appropriate for the
// host environment's current locale (this is
// derived in an implementation-defined way).
// NOTE: In this case, we will use a comma
var separator = ',';
// 4. If len is zero, return the empty String.
if (len === 0) {
return '';
}
// 5. Let firstElement be ? Get(A, "0").
var firstElement = a[0];
// 6. If firstElement is undefined or null, then
// a.Let R be the empty String.
// 7. Else,
// a. Let R be ?
// ToString(?
// Invoke(
// firstElement,
// "toLocaleString",
// « locales, options »
// )
// )
var r = firstElement == null ?
'' : firstElement.toLocaleString(locales, options);
// 8. Let k be 1.
var k = 1;
// 9. Repeat, while k < len
while (k < len) {
// a. Let S be a String value produced by
// concatenating R and separator.
var s = r + separator;
// b. Let nextElement be ? Get(A, ToString(k)).
var nextElement = a[k];
// c. If nextElement is undefined or null, then
// i. Let R be the empty String.
// d. Else,
// i. Let R be ?
// ToString(?
// Invoke(
// nextElement,
// "toLocaleString",
// « locales, options »
// )
// )
r = nextElement == null ?
'' : nextElement.toLocaleString(locales, options);
// e. Let R be a String value produced by
// concatenating S and R.
r = s + r;
// f. Increase k by 1.
k++;
}
// 10. Return R.
return r;
}
});
}
Für die Unterstützung von veralteten JavaScript Engines, die Object.defineProperty nicht kennen, sollte kein Polyfill für Array.prototype Methoden eingesetzt werden, da sie auf diese Weise nicht mehr nicht-durchzählbar gemacht werden können.
Spezifikationen
| Spezifikation | Status | Kommentar |
|---|---|---|
| ECMAScript (ECMA-262) Die Definition von 'Array.prototype.toLocaleString' in dieser Spezifikation. |
Lebender Standard | Initiale Definition war in ECMAScript 3. |
| ECMAScript Internationalization API (ECMA-402) Die Definition von 'Array.prototype.toLocaleString' in dieser Spezifikation. |
Lebender Standard | Diese Definition ersetzt die Definition aus ECMA-262. |
Browserkompatibilität
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
toLocaleString | Chrome Vollständige Unterstützung 1 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 1 | IE Vollständige Unterstützung 5.5 | Opera Vollständige Unterstützung 4 | Safari Vollständige Unterstützung 1 | WebView Android Vollständige Unterstützung ≤37 | Chrome Android Vollständige Unterstützung 18 | Firefox Android Vollständige Unterstützung 4 | Opera Android Vollständige Unterstützung 10.1 | Safari iOS Vollständige Unterstützung 1 | Samsung Internet Android Vollständige Unterstützung 1.0 | nodejs Vollständige Unterstützung 0.1.100 |
Optional locales parameter | Chrome Vollständige Unterstützung 24 | Edge Vollständige Unterstützung 79 | Firefox Vollständige Unterstützung 52 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 15 | Safari Vollständige Unterstützung 6.1 | WebView Android Vollständige Unterstützung ≤37 | Chrome Android Vollständige Unterstützung 25 | Firefox Android Keine Unterstützung Nein | Opera Android Vollständige Unterstützung 14 | Safari iOS Vollständige Unterstützung 6.1 | Samsung Internet Android Vollständige Unterstützung 2.0 | nodejs
Vollständige Unterstützung
13.0.0
|
Optional options parameter | Chrome Vollständige Unterstützung 24 | Edge Vollständige Unterstützung 79 | Firefox Vollständige Unterstützung 52 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 15 | Safari Vollständige Unterstützung 6.1 | WebView Android Vollständige Unterstützung ≤37 | Chrome Android Vollständige Unterstützung 25 | Firefox Android Keine Unterstützung Nein | Opera Android Vollständige Unterstützung 14 | Safari iOS Vollständige Unterstützung 6.1 | Samsung Internet Android Vollständige Unterstützung 2.0 | nodejs Vollständige Unterstützung 0.12 |
Legende
- Vollständige Unterstützung
- Vollständige Unterstützung
- Keine Unterstützung
- Keine Unterstützung
- Siehe Implementierungshinweise.
- Siehe Implementierungshinweise.