Learn JavaScript

toString() - метод для преобразования массива в строку в JavaScript

toString() преобразует массив в строку.

Для массива этот метод обычно соединяет элементы через запятую и возвращает один строковый результат.

Синтаксис

array.toString()

Метод не принимает аргументов.

Что делает toString()

toString() берёт элементы массива и превращает их в одну строку.

const numbers = [1, 2, 3];

console.log(numbers.toString()); // "1,2,3"

Что возвращает toString()

toString() всегда возвращает строку.

const values = [10, 20, 30];
const result = values.toString();

console.log(result);        // "10,20,30"
console.log(typeof result); // "string"

Это главное, что важно запомнить: результатом будет не массив, а строка.

Запятая используется по умолчанию

Для массива toString() соединяет элементы через запятую.

const fruits = ["apple", "banana", "orange"];

console.log(fruits.toString()); // "apple,banana,orange"

Если нужен другой разделитель, обычно используют join().

Пустой массив

Если массив пустой, метод вернёт пустую строку.

const result = [].toString();

console.log(result); // ""

toString() не меняет исходный массив

Метод только возвращает строку и не изменяет сам массив.

const items = ["a", "b", "c"];
const result = items.toString();

console.log(items);  // ["a", "b", "c"]
console.log(result); // "a,b,c"

Числа и другие значения

Элементы массива приводятся к строке автоматически.

const values = [10, true, false];

console.log(values.toString()); // "10,true,false"

null, undefined и пустые слоты

null, undefined и пустые слоты дают пустые участки строки.

const values = [1, null, undefined, 4];

console.log(values.toString()); // "1,,,4"
const values = Array(3);

console.log(values.toString()); // ",,"

Это поведение часто выглядит неожиданно, но для массива оно нормально.

Вложенные массивы

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

const values = [[1, 2], [3, 4]];

console.log(values.toString()); // "1,2,3,4"

Из-за этого вложенность в результате визуально теряется.

Массив объектов

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

const users = [{ name: "Anna" }, { name: "Ivan" }];

console.log(users.toString()); // "[object Object],[object Object]"

В таких случаях toString() обычно не лучший выбор.

toString() и join()

Для массива toString() очень похож на join() без аргументов.

const numbers = [1, 2, 3];

console.log(numbers.toString()); // "1,2,3"
console.log(numbers.join());     // "1,2,3"

Но у join() есть важное преимущество: можно задать свой разделитель.

const numbers = [1, 2, 3];

console.log(numbers.join(" - ")); // "1 - 2 - 3"

Если нужен пробел, тире или любой другой разделитель, чаще используют именно join().

toString() и String()

Если передать массив в String(), результат будет тем же:

const numbers = [1, 2, 3];

console.log(String(numbers));    // "1,2,3"
console.log(numbers.toString()); // "1,2,3"

Но toString() вызывается у самого массива, а String() - это отдельная функция преобразования.

Когда это полезно

toString() удобно использовать, когда:

  • нужно быстро получить строку из массива
  • разделитель в виде запятой подходит
  • не нужен более гибкий вариант через join()

Пример:

const tags = ["js", "array", "methods"];
const text = tags.toString();

console.log(text); // "js,array,methods"

Частые ошибки

Думать, что toString() возвращает массив

const result = [1, 2, 3].toString();

console.log(result); // "1,2,3"

Это строка, а не массив.

Ждать другой разделитель

const words = ["a", "b", "c"];

console.log(words.toString()); // "a,b,c"

toString() для массива использует запятую. Если нужен другой разделитель, лучше взять join().

Удивляться результату с вложенными массивами

const values = [[1, 2], [3, 4]];

console.log(values.toString()); // "1,2,3,4"

В результате уже не видно исходной вложенности.

Быстрая памятка

  • toString() превращает массив в строку
  • результатом всегда будет string
  • элементы обычно соединяются через запятую
  • исходный массив не меняется
  • если нужен свой разделитель, чаще используют join()

Коротко

toString() - это простой способ преобразовать массив в строку. Главное, что стоит запомнить: метод возвращает строку с элементами через запятую и обычно уступает join(), если нужен более управляемый результат.