← Все вопросы

Как преобразовать массив в строку и обратно в JavaScript (join и split)?

Задан 28 месяцев назад255 просмотров2 ответа
7

Есть массив тегов, хочу склеить их в строку через запятую, а потом из такой строки снова получить массив. Какие методы для этого — что-то вроде массив в строку и строку в массив? Запутался, какой что делает.

2 ответа

12
✓ Принятый ответ — помог автору

Два парных метода: join (массив → строка) и split (строка → массив).

join(разделитель) склеивает элементы массива в строку:

const tags = ['js', 'html', 'css'];
const str = tags.join(', ');
console.log(str); // 'js, html, css'

Если разделитель не указать, join ставит запятую по умолчанию. Можно склеить и без разделителя — join('').

split(разделитель) режет строку на массив по разделителю:

const str = 'js, html, css';
const tags = str.split(', ');
console.log(tags); // ['js', 'html', 'css']

Важно: split — это метод строки, а join — метод массива. Их легко перепутать местами.

Полезные частные случаи split:

'привет'.split('');     // ['п','р','и','в','е','т'] — по буквам
'1 2 3'.split(' ');     // ['1', '2', '3'] — по пробелу

Грабли: после split элементы — строки, даже если это были цифры. Чтобы получить числа, добавь map:

const nums = '1,2,3'.split(',').map(Number);
console.log(nums); // [1, 2, 3] — уже числа

Без .map(Number) ты бы складывал строки и получил бы склейку вроде '12', а не сумму.

4

Запомнить, кто есть кто, помогает смысл слов: join — соединить (в строку), split — расщепить (на части).

Ещё toString() у массива — это по сути join(','):

console.log([1, 2, 3].toString()); // '1,2,3'

Но join гибче — позволяет задать любой разделитель, поэтому чаще берут именно его.

Ваш ответ

, чтобы ответить на вопрос.