.toLocaleString()

Возвращает строковое представление массива, основанное на результатах приведения каждого элемента к строке в соответствии с типом элемента и переданными параметрами локализации.

Время чтения: меньше 5 мин

Кратко

Скопировано

Метод toLocaleString() возвращает представление массива в виде строки, состоящей из результатов приведения каждого элемента массива, к строке в соответствии с типом элемента и переданными параметрами локализации. В качестве разделителя значений используется символ, определённый в соответствии с параметрами локализации среды исполнения (, или другой, используемый для разделения элементов в списке).

Для элементов массива, являющихся null или undefined, возвращается пустая строка.

Пример

Скопировано

Получим строку из массива с учётом локализации de-DE (немецкий язык и региональные стандарты чисел и дат Германии):

        
          
          const array = [null, 50, 15000, new Date('2007-08-10')]const arrayStr = array.toLocaleString('de-DE')console.log(arrayStr)// 50,15.000,10.8.2007, 03:00:00
          const array = [null, 50, 15000, new Date('2007-08-10')]
const arrayStr = array.toLocaleString('de-DE')

console.log(arrayStr)
// 50,15.000,10.8.2007, 03:00:00

        
        
          
        
      

Получим строку из того же массива с учётом локализации en-US (английский язык и региональные стандарты чисел и дат США) и указанием часового пояса:

        
          
          const array = [null, 50, 15000, new Date('2007-08-10')]const arrayStr = array.toLocaleString(  'en-US', {timeZone: 'Europe/Amsterdam'})console.log(arrayStr)// 50,15,000,8/10/2007, 2:00:00 AM
          const array = [null, 50, 15000, new Date('2007-08-10')]
const arrayStr = array.toLocaleString(
  'en-US', {timeZone: 'Europe/Amsterdam'}
)
console.log(arrayStr)
// 50,15,000,8/10/2007, 2:00:00 AM

        
        
          
        
      

Как пишется

Скопировано

Array.toLocaleString() принимает два необязательных аргумента:

  • locales — строка, определяющая локаль (информация о языке пользователя, а также региональных настройках) или массив таких строк;
  • options — объект конфигурационных параметров, используемых при вызове метода toLocaleString() у каждого элемента массива.

Array.toLocaleString() возвращает строку, состоящую из результатов вызова метода toLocaleString() для всех элементов массива, разделённых запятой или другим символом разделения.

Если метод вызван без аргументов, будут использованы параметры локализации, установленные в среде исполнения.

Как понять

Скопировано

Метод toLocaleString() предназначен для представления данных в соответствии с указанной локализацией.

Локализация нужна для чисел, дат, денежных единиц, так как в региональных стандартах используются различные форматы представления этих данных. Например, число 1000 может быть по-разному представлено в виде строки:

  • 1,000en-US;
  • 1 000ru-RU;
  • 1.000de-DE.

Метод toLocaleString() определён в прототипе Object.prototype и наследуется всеми встроенными объектами.

Кроме Object и Array собственную реализацию метода toLocaleString() имеют встроенные объекты:

  • Number;
  • Date;
  • BigInt;
  • TypedArray.

Обходя массив, метод toLocaleString() выполняет для каждого элемента, в соответствии с типом значения, вызов toLocaleString() (если значение не является null или undefined) и объединяет результат в строку, используя установленный разделитель (обычно запятую).

Если элемент массива является значением примитивного типа, то для применения к нему метода toLocaleString() значение оборачивается соответствующим объектом-обёрткой.

Все значения примитивных типов кроме null и undefined имеют соответствующий объект-обёртку. Например: true — Boolean, 175 — Number, 'Аквариум' — String.

Метод массива toLocaleString() — это удобный способ получения строки из массива данных с учётом параметров локализации.

Получим из массива чисел строку цен в евро:

        
          
          const numbers = [150, 20, 800, 0]const pricesStr = numbers.toLocaleString(  'de-DE', {style: 'currency', currency: "EUR"})console.log(pricesStr)// 150,00 €,20,00 €,800,00 €,0,00 €
          const numbers = [150, 20, 800, 0]
const pricesStr = numbers.toLocaleString(
  'de-DE', {style: 'currency', currency: "EUR"}
)
console.log(pricesStr)
// 150,00 €,20,00 €,800,00 €,0,00 €