Объединить массив через запятую и пробел

У меня есть массив, который я хочу преобразовать в строку с разделителями-запятыми. Array.toString() работает, но если у меня довольно большой массив, он не будет переноситься, потому что после запятых нет пробелов:

document.body.innerHTML = ['css','html','xhtml','html5','css3','javascript','jquery','lesscss','arrays','wordpress','facebook','fbml','table','.htaccess','php','c','.net','c#','java'].toString();
// css,html,xhtml,html5,css3,javascript,jquery,lesscss,arrays,wordpress,facebook,fbml,table,.htaccess,php,c,.net,c#,java

Как я могу поставить пробелы после запятых, чтобы разрешить перенос строк/слов?

Пример вывода:

css, html, xhtml, html5, css3, javascript, jquery, lesscss, arrays, wordpress, facebook, fbml, table, .htaccess, php, c, .net, c#, java

person Myles Gray    schedule 22.02.2011    source источник
comment
Связано: stackoverflow.com/ вопросы/5289403/   -  person Justin    schedule 18.02.2014


Ответы (6)


В JavaScript есть метод .join() для массивов, чтобы получить строку, которому вы можете предоставить разделитель. В вашем случае это будет выглядеть так:

var myArray = ['css','html','xhtml','html5','css3','javascript','jquery','lesscss','arrays','wordpress','facebook','fbml','table','.htaccess','php','c','.net','c#','java'];
var myString = myArray.join(', ');

Вы можете проверить это здесь

person Nick Craver    schedule 22.02.2011
comment
Есть ли способ сделать это без метода .join()? - person ConstantFun; 08.05.2019

Используйте array.join(", "); и все должно работать

person adarshr    schedule 22.02.2011

 string.Join(", ", new string[] { "css", "html", "xhtml", ..etc });

Это печатает элементы с запятой и пробелом

[править] Извините, не заметил, что это для javascript. Мой код С# :)

person John xyz    schedule 22.02.2011

Пришлось ставить # перед каждым словом, .join() не работал для первого слова и должен был сделать это:

var myString = '#'+ myArray.join(', ');
person Dessuane    schedule 25.11.2020

Я видел в комментарии вопрос, как это сделать без функции .join().

Вот один хитрый способ:

const array_of_strings = ['css','html','xhtml','html5','css3','javascript','jquery','lesscss','arrays','wordpress','facebook','fbml','table','.htaccess','php','c','.net','c#','java']
const separator = ', '
const result = array_of_strings.reduce((accumulator, currentValue) => accumulator + separator + currentValue);
console.log(result)

person Dmytro Huz    schedule 31.05.2021

Попробуйте так с помощью регулярного выражения

let arr = ['css', 'html', 'xhtml', 'html5', 'css3', 'javascript', 'jquery', 'lesscss', 'arrays', 'wordpress', 'facebook', 'fbml', 'table', '.htaccess', 'php', 'c', '.net', 'c#', 'java'].toString();

let myString = arr.replace(/,[s]*/g, ", ");


console.log(myString);

person Force Bolt    schedule 31.05.2021