Array.prototype.toLocaleString()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Phương thức toLocaleString() của các đối tượng Array trả về một chuỗi đại diện cho các phần tử của mảng. Các phần tử được chuyển đổi thành chuỗi bằng phương thức toLocaleString của chúng và các chuỗi này được phân tách bằng một chuỗi theo ngôn ngữ địa phương (chẳng hạn như dấu phẩy ",").
Try it
const array = [1, "a", new Date("21 Dec 1997 14:12:00 UTC")];
const localeString = array.toLocaleString("en", { timeZone: "UTC" });
console.log(localeString);
// Expected output: "1,a,12/21/1997, 2:12:00 PM",
// This assumes "en" locale and UTC timezone - your results may vary
Cú pháp
toLocaleString()
toLocaleString(locales)
toLocaleString(locales, options)
Tham số
localesOptional-
Một chuỗi có BCP 47 language tag, hoặc một mảng các chuỗi như vậy. Để biết dạng tổng quát và cách diễn giải tham số
locales, xem mô tả tham số trên trang chính củaIntl. optionsOptional-
Một đối tượng có các thuộc tính cấu hình. Những gì bạn có thể truyền ở đây phụ thuộc vào loại phần tử đang được chuyển đổi. Ví dụ, đối với số, xem
Number.prototype.toLocaleString().
Giá trị trả về
Một chuỗi đại diện cho các phần tử của mảng.
Mô tả
Phương thức Array.prototype.toLocaleString duyệt nội dung của nó, gọi phương thức toLocaleString của từng phần tử với các tham số locales và options được cung cấp, và nối chúng lại với một dấu phân cách được xác định bởi cài đặt (chẳng hạn như dấu phẩy ",").
Note:
Các đối số locales hoặc options không kiểm soát dấu phân cách được dùng giữa các phần tử mảng; chúng chỉ đơn giản được truyền đến phương thức toLocaleString() của từng phần tử. Dấu phân cách thực tế (thường là dấu phẩy) phụ thuộc hoàn toàn vào ngôn ngữ địa phương hiện tại của máy chủ. Nếu bạn muốn định dạng danh sách theo ngôn ngữ địa phương, hãy xem xét dùng Intl.ListFormat thay thế.
Nếu một phần tử là undefined, null, nó được chuyển đổi thành chuỗi rỗng thay vì chuỗi "null" hoặc "undefined".
Khi được dùng trên mảng thưa, phương thức toLocaleString() lặp qua các vị trí trống như thể chúng có giá trị undefined.
Phương thức toLocaleString() là phương thức tổng quát. Nó chỉ yêu cầu giá trị this có thuộc tính length và các thuộc tính có khóa là số nguyên.
Ví dụ
>Sử dụng locales và options
Các phần tử của mảng được chuyển đổi thành chuỗi bằng phương thức toLocaleString của chúng. Ví dụ, đoạn code sau ngầm gọi phương thức Number.prototype.toLocaleString() để hiển thị tiền tệ cho các chuỗi và số trong mảng prices:
const prices = ["¥7", 500, 8123, 12];
prices.toLocaleString("ja-JP", { style: "currency", currency: "JPY" });
// "¥7,¥500,¥8,123,¥12"
Dấu phân cách danh sách
Dấu phân cách danh sách không bị ảnh hưởng bởi tham số locales. Để cấu hình nó, hãy dùng Intl.ListFormat thay thế.
const nums = [8888, 9999];
console.log(nums.toLocaleString("zh")); // "8,888,9,999"
const formatter = new Intl.ListFormat("zh", {
type: "conjunction",
style: "narrow",
});
console.log(formatter.format(nums.map((x) => x.toLocaleString("zh"))));
// "8,888、9,999"
Sử dụng toLocaleString() trên mảng thưa
toLocaleString() xử lý các vị trí trống giống như undefined và tạo ra dấu phân cách thừa:
console.log([1, , 3].toLocaleString()); // '1,,3'
Gọi toLocaleString() trên đối tượng không phải mảng
Phương thức toLocaleString() đọc thuộc tính length của this và sau đó truy cập từng thuộc tính có khóa là số nguyên không âm nhỏ hơn length.
const arrayLike = {
length: 3,
0: 1,
1: 2,
2: 3,
3: 4, // ignored by toLocaleString() since length is 3
};
console.log(Array.prototype.toLocaleString.call(arrayLike));
// 1,2,3
Thông số kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.tolocalestring> |
| ECMAScript® 2026 Internationalization API Specification> # sup-array.prototype.tolocalestring> |