在javascript toString()中添加不同的分隔符..?

时间:2009-09-09 10:30:23

标签: javascript arrays

通常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

4 个答案:

答案 0 :(得分:43)

myArray.join('_')应该做你需要的。

答案 1 :(得分:7)

使用join将元素与特定分隔符连接起来:

myArray.join("_")

答案 2 :(得分:3)

除了证明它可以做任何其他目的并且回答问题的标题(但不是精神):

<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>

我不建议这样做。它使您的代码更加复杂,并且依赖于在toString()上扩展Array功能所需的代码。使用Array.join()是正确答案,我只想表明可以修改JavaScript以执行最初要求的操作。

答案 3 :(得分:1)

当阵列是多维的时,Grant Wagner的答案具有实用性。

拿阵[[&#39; Mary&#39;,&#39; Had&#39;],[&#39; A&#39;,&#39; Little&#39;],[&# 39;羊羔&#39;,&#39;和&#39;]]

如果您使用Array.join(&#39; _&#39;)方法,那么结果将类似于:

玛丽,Had_A,Little_lamb,和

因为join方法使用.toString()方法来组装主数组中的每个元素,这默认使用逗号分隔符。

更改Array.toString()方法会产生所需的结果。