Обединете масив със запетая и интервал

Имам масив, който искам да преобразувам в низ, разделен със запетая. 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. Моят код е c# :)

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