将数组转换为字符串时允许逗号

时间:2016-04-27 13:26:16

标签: javascript arrays regex

我有一个用逗号分隔的字符数组。我需要拆分数组,但在每个字符之间保留逗号。

请参阅下面的示例数组:

var myArray = [a,,,b,c,d,,,]

在角色之间有一个逗号" a"和" b"。我需要在将数组转换为字符串时保留逗号。

输出字符串需要类似于:

a,bcd,

这就是我目前为保留逗号所做的工作:

myArray.toString().replace(/,/g, "");

6 个答案:

答案 0 :(得分:3)

数组的toString()方法基本上会执行join(",")这就是为什么你在字符串中获得额外的逗号。

如果你想加入元素而没有将分隔符作为字符串的一部分添加,请使用join("")



var myArray = ["a",",","b","c","d",",",]
document.body.innerText = myArray.join("");




答案 1 :(得分:2)

你怎么用:

var myArray = [a,,,b,c,d,,,];
var str = myArray.join();

这将提供一串数组元素,保留逗号。

答案 2 :(得分:1)

基本上你有一个稀疏数组,想要只提取填充值并将其转换为字符串?这是一个,可能不是最好的解决方案:

    var myArray = ['a',',',',','b',',','c']
var resultArray = [];
for(var i = 0; i < myArray.length; i++){
    if(myArray[i] !== ','){// allow 0, false, null values, but not undefined
       resultArray.push(myArray[i]);
    }
}

console.log(resultArray);

工作plnkr:http://plnkr.co/edit/55T6PGI9DuTlvy6k88hr?p=preview,检查你的broswer的控制台。

答案 3 :(得分:1)

如果这是一个实际的字符串数组,并且您只想要那些具有实际值的字符串,则可以使用filter()函数过滤掉任何非未定义的字符串:

// Your example array
var input = ['a',,,'b','c','d',,,];
// Remove any undefined elements
var output = input.filter(function(e){ return e; }); // yields ['a','b','c','d']

然后,您可以使用join()函数创建包含元素的字符串:

var result = output.join(); // yields "a,b,c,d"

示例代码段

var input = ['a',,,'b','c','d',,,];
document.write('INPUT: ' + input + '<br />');
var output = input.filter(function(e){ return e; });
document.write('OUTPUT: ' + output);

答案 4 :(得分:1)

如果您希望它保持中心逗号,则应将数组创建为

var myArray = [a,",",b,c,d,",",];

然后将这组中的逗号视为包含该字符而不是数组分隔符的字符串

答案 5 :(得分:1)

您可以更改正则表达式,将item,item替换为item item

 myArray.toString().replace(/([a-z,]),([a-z,])/g, "$1$2")