尽管有seperator参数,Javascript join仍然用逗号输出字符串

时间:2011-07-19 08:52:25

标签: javascript jquery arrays

我有一个相当奇怪的问题。我有一个字符串格式的html代码数组,我想连接在一起并插入到我页面上的现有元素中。

数组看起来像这样:

var sample_array = ['<div class="cld-event"><div class="cld-time">12:00</div><div class="cld-description">Some blabla</div></div>', '<div class="cld-event"><div class="cld-time">15:00</div><div class="cld-description">Some blabla</div></div>', ...];

加入和插入数组时,如:

$(myelement).html(sample_array.join(''));

我奇怪地用逗号分隔各个html元素,我当然不想要。

只需在控制台中记录数组连接,也会返回以逗号分隔的元素。我已经尝试用其他字符串(例如'')替换join方法中的'+'参数,但它也没有帮助,它始终是显示的逗号。

我画了整个代码而且没有错误。有没有人遇到过这样的事情?我确定我在这里犯了一些非常明显和非常愚蠢的错误,但我无法弄明白。

3 个答案:

答案 0 :(得分:0)

你确定你没有以某种方式包含逗号吗?比如添加一组额外的引号以便你只有一个数组元素?

因为唯一的原因是实际上你只加入一个只有一个元素的数组(所以不执行连接,所以忽略join('+'))

sample_array.length的价值是多少?

你确定你的数组不是(注意开头的引号)

["'<div class="cld-event"><div class="cld-time">12:00</div><div class="cld-description">Some blabla</div></div>', '<div class="cld-event"><div class="cld-time">15:00</div><div class="cld-description">Some blabla</div></div>', ..."];

答案 1 :(得分:0)

就像你期望的那样适合我。介意一起快速jsfiddle?

但是,如果你在那里得到昏迷,你必须将它们放在你的原始数组中(你是否将其与其他东西分开,或者你是如何生成数组的?)。另一种可能性是你可能使用一个变量作为连接参数,它以某种方式得到一个错误的值。

您可能没有以逗号分隔的数组,但["<div></div>,<div></div>"]看起来像一个包含2个元素的数组,但实际上并非如此。

答案 2 :(得分:0)

我自己就是这个问题。你问过这已经四年了,但也许像我这样的人会谷歌这个答案并节省一些时间。

我正在处理一个字符串,我split()进入一个数组来修改某些部分,然后join()将它转换回一个字符串。所以基本上,我从

开始

var myNiftyStuff = 'My nifty stuff.'; myNiftyStuff = myNiftyStuff.split('');

在这里,myNiftyStuff以字符串开头。 split()然后将其更改为数组。

然后我想要处理的任何mod都发生在数组中。当我尝试加入我的阵列时,我正在呼叫

myNiftyStuff.join('');

由于join()不具有破坏性,它只是自行返回而不是修改变量。但我没有意识到这一点,我的身体并没有。吠叫,代码中的任何内容都没有了。

然后,我通过jQuery将我的数组传递给页面(不确定jQ是否在这里很重要),它使用逗号将其呈现为连接字符串,这必须是默认行为。

应该覆盖我的变量

myNiftyStuff = myNiftyStuff.join('');

现在myNiftyStuff已更新为join()的返回值。当我将它添加到页面时,它是一个连接的字符串,而在我通过数组之前没有意识到我没有保存我的join()的结果。