通常,JavaScript的toString()
方法返回逗号分隔值形式的数组,如下所示
var myArray = [ 'zero', 'one', 'two', 'three', 'four', 'five' ];
var result = myArray .toString();
并返回如下的zero,one,two,three,four,five
.输出
但是我需要用这种格式的zero_one_two_three_four_five
(用_
替换逗号)来表示结果。
我知道我们可以在将数组转换为字符串后使用replace方法来完成此操作。有没有更好的替代方案?
干杯
Ramesh Vel
发布于 2009-09-09 10:31:47
myArray.join('_')应该可以做你需要的事情。
发布于 2009-09-09 10:32:32
使用join
将元素与特定分隔符联接:
myArray.join("_")
发布于 2009-09-09 21:35:23
为了证明它是可以做到的,并回答所问问题的标题(但不是精神):
<pre>
<script type="text/javascript">
Array.prototype.toStringDefault = Array.prototype.toString;
Array.prototype.toString = function (delim) {
if ('undefined' === typeof delim) {
return this.toStringDefault();
}
return this.join(delim);
}
var myArray = [ 'zero', 'one', 'two', 'three', 'four', 'five' ];
var result1 = myArray.toString('_');
document.writeln(result1);
var result2 = myArray.toString();
document.writeln(result2);
</script>
</pre>
我不推荐这样做。它使您的代码更加复杂,并且依赖于在Array
上扩展toString()
功能所需的代码。使用Array.join()
是正确的答案,我只是想说明可以修改JavaScript来做最初要求做的事情。
https://stackoverflow.com/questions/1398830
复制相似问题