我有一个用逗号分隔的字符数组。我需要拆分数组,但在每个字符之间保留逗号。
请参阅下面的示例数组:
var myArray = [a,,,b,c,d,,,]
在角色之间有一个逗号" a"和" b"。我需要在将数组转换为字符串时保留逗号。
输出字符串需要类似于:
a,bcd,
这就是我目前为保留逗号所做的工作:
myArray.toString().replace(/,/g, "");
答案 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")