toLocaleString()
method returns a string representing the elements of the array. The elements are converted to Strings using their
toLocaleString
methods and these Strings are separated by a locale-specific String (such as a comma “,”).
arr.toLocaleString([locales[, options]]);
locales
可选
locales
argument, see the
Intl
页面。
options
可选
Number.prototype.toLocaleString()
, and for dates see
Date.prototype.toLocaleString()
.
A string representing the elements of the array.
// 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;
}
});
}
If you need to support truly obsolete JavaScript engines that don't support
Object.defineProperty
, it's best not to polyfill
Array.prototype
methods at all, as you can't make them non-enumerable.
locales
and
options
The elements of the array are converted to strings using their
toLocaleString
方法。
Object
:
Object.prototype.toLocaleString()
Number
:
Number.prototype.toLocaleString()
Date
:
Date.prototype.toLocaleString()
Always display the currency for the strings and numbers in the
prices
array:
var prices = ['¥7', 500, 8123, 12];
prices.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });
// "¥7,¥500,¥8,123,¥12"
For more examples, see also the
Intl
,
NumberFormat
,和
DateTimeFormat
pages.
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
toLocaleString
|
Chrome 1 | Edge 12 | Firefox 1 | IE 5.5 | Opera 4 | Safari 1 | WebView Android ≤37 | Chrome Android 18 | Firefox Android 4 | Opera Android 10.1 | Safari iOS 1 | Samsung Internet Android 1.0 | nodejs 0.1.100 |
可选
locales
parameter
|
Chrome 24 | Edge 79 | Firefox 52 | IE No | Opera 15 | Safari 6.1 | WebView Android ≤37 | Chrome Android 25 | Firefox Android No | Opera Android 14 | Safari iOS 6.1 | Samsung Internet Android 2.0 |
nodejs
13.0.0
|
可选
options
parameter
|
Chrome 24 | Edge 79 | Firefox 52 | IE No | Opera 15 | Safari 6.1 | WebView Android ≤37 | Chrome Android 25 | Firefox Android No | Opera Android 14 | Safari iOS 6.1 | Samsung Internet Android 2.0 | nodejs 0.12 |
完整支持
不支持
见实现注意事项。
Array.prototype.toString()
Intl
Object.prototype.toLocaleString()
Number.prototype.toLocaleString()
Date.prototype.toLocaleString()
Array
Array.from()
Array.isArray()
Array.of()
Array.prototype.concat()
Array.prototype.copyWithin()
Array.prototype.entries()
Array.prototype.every()
Array.prototype.fill()
Array.prototype.filter()
Array.prototype.find()
Array.prototype.findIndex()
Array.prototype.flat()
Array.prototype.flatMap()
Array.prototype.forEach()
Array.prototype.includes()
Array.prototype.indexOf()
Array.prototype.join()
Array.prototype.keys()
Array.prototype.lastIndexOf()
Array.prototype.map()
Array.prototype.pop()
Array.prototype.push()
Array.prototype.reduce()
Array.prototype.reduceRight()
Array.prototype.reverse()
Array.prototype.shift()
Array.prototype.slice()
Array.prototype.some()
Array.prototype.sort()
Array.prototype.splice()
Array.prototype.toLocaleString()
Array.prototype.toSource()
Array.prototype.toString()
Array.prototype.unshift()
Array.prototype.values()
Array.prototype[@@iterator]()
get Array[@@species]
Function
Object
Object.prototype.__defineGetter__()
Object.prototype.__defineSetter__()
Object.prototype.__lookupGetter__()
Object.prototype.__lookupSetter__()
Object.prototype.hasOwnProperty()
Object.prototype.isPrototypeOf()
Object.prototype.propertyIsEnumerable()
Object.prototype.toLocaleString()
Object.prototype.toSource()
Object.prototype.toString()
Object.prototype.valueOf()
Object.setPrototypeOf()