Array.prototype.toString()
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Метод toString() экземпляров Array возвращает строку, представляющую указанный массив и его элементы.
Попробуйте
const array = [1, 2, "a", "1a"]; console.log(array.toString()); // Expected output: "1,2,a,1a"
Синтаксис
toString()
Параметры
Нет.
Возвращаемое значение
Строка, представляющая элементы массива.
Описание
Объект Array переопределяет метод toString объекта Object. Метод toString массивов внутренне вызывает join(), который объединяет массив и возвращает одну строку, содержащую каждый элемент массива, разделённый запятыми. Если метод join недоступен или не является функцией, вместо него используется Object.prototype.toString, возвращающий [object Array].
const arr = [];
arr.join = 1; // re-assign `join` with a non-function
console.log(arr.toString()); // [object Array]
console.log(Array.prototype.toString.call({ join: () => 1 })); // 1
JavaScript автоматически вызывает метод toString, когда массив должен быть представлен в виде текстового значения или когда массив используется в конкатенации строк.
Array.prototype.toString рекурсивно преобразует каждый элемент, включая другие массивы, в строки. Поскольку строка, возвращаемая Array.prototype.toString, не имеет разделителей, вложенные массивы выглядят так, как будто они "сплющены".
const matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]; console.log(matrix.toString()); // 1,2,3,4,5,6,7,8,9
Когда массив является циклическим (содержит элемент, который является самим собой), браузеры избегают бесконечной рекурсии, игнорируя циклическую ссылку.
const arr = []; arr.push(1, [3, arr, 4], 2); console.log(arr.toString()); // 1,3,,4,2
Примеры
Использование toString()
const array = [1, 2, "a", "1a"]; console.log(array.toString()); // "1,2,a,1a"
Использование toString() на разреженных массивах
Следуя поведению join(), toString() обрабатывает пустые слоты так же, как undefined, и генерирует дополнительный разделитель:
console.log([1, , 3].toString()); // '1,,3'
Вызов toString() на объектах, не являющихся массивами
toString() является обобщённым. Он ожидает, что this будет иметь метод join(); или, в противном случае, использует Object.prototype.toString().
console.log(Array.prototype.toString.call({ join: () => 1 }));
// 1; a number
console.log(Array.prototype.toString.call({ join: () => undefined }));
// undefined
console.log(Array.prototype.toString.call({ join: "not function" }));
// "[object Object]"
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
toString |
1 |
12 |
1 |
4 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
1 |
1 |
1.0.0 |
1.0 |
0.10.0 |
Смотрите также
- Руководство по индексированным коллекциям
ArrayArray.prototype.join()Array.prototype.toLocaleString()TypedArray.prototype.toString()String.prototype.toString()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString