Javascript join输出带逗号的字符串,不考虑分隔符参数

Javascript join输出带逗号的字符串,不考虑分隔符参数,javascript,jquery,arrays,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="

我有一个很奇怪的问题。我有一个字符串格式的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>', ...];
奇怪的是,我得到了用逗号分隔的单个html元素,这当然是我不想要的

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


我删掉了整个代码,没有错误。有人遇到过这样的事情吗?我确信我在这里犯了一些非常明显、非常愚蠢的错误,但我就是想不出来。

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

因为这样做的唯一原因是实际上您只使用一个元素连接一个数组(因此不执行连接,而忽略连接(+'))

什么值有
sample\u array.length

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

[“'12:00someblabla','15:00someblabla',…”;

对我来说就像你期望的那样。你介意快速拼凑一块吗

但是,如果你在那里得到了coma,你必须将它们放在你的原始数组中(你是否将它从其他数组中分离出来,或者你是如何生成数组的?)。另一种可能性是,您可能使用一个变量作为连接参数,这会以某种方式得到一个错误的值


您可能没有以coma分隔的数组,但它看起来像是由2个元素组成的数组,但实际上不是。

我自己也有这个问题。你问这个问题已经四年了,但也许像我这样的人会用谷歌搜索这个答案,为自己节省一些时间

我正在处理一个字符串,我将它拆分成一个数组来修改一些部分,然后将它重新合并成一个字符串。所以基本上,我是从

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

在这里,
myNiftyStuff
以字符串的形式开始生命<代码>拆分()
然后将其更改为数组

然后,我想处理的任何mod都发生在阵列中。当我试图加入我的阵营时,我正在打电话

myNiftyStuff.join(“”)

因为
join()
不是破坏性的,它只是返回本身,而不是修改变量。
但我没有意识到,我的皮棉没有发出吠声,代码中没有任何内容

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

我应该像这样重写我的变量

myNiftyStuff=myNiftyStuff.join(“”)


现在用
join()
的返回值更新了
myNiftyStuff
。当我将其添加到页面时,它是一个连接的字符串,而在我传递数组之前,我没有意识到我没有保存我的
join()

的结果。您的示例在控制台上可以正常工作。只需尝试上给出的示例,我也在控制台中尝试了它,它也可以工作,因此它确实非常奇怪。好的,我发现了问题。在此过程中,我设法将数组转换为二维数组,因此连接的行为异常。感谢所有试图帮助你的人…谢谢你的回答。数组长度为2(理论上可能更大,但在这种特定情况下我只有2个元素),因此这不是您描述的问题。好吧,那么正如Zanfa建议的那样,发布完整代码,因为您的问题是不可复制的!:)我在加入之前记录原始数组,并且没有逗号。我通过ajax从服务器检索一组事件,然后将每个事件以html字符串的形式推送到数组中。这就是我以后要加入的数组。我会把一个例子放在一起,但是如果简单地写下一个示例数组,一切都会按照预期工作…@ximi如果你不能发布或向我们展示代码,你可以通过不连接它们来修复它,而是通过数组循环,为每个元素创建一个jQuery对象,并将其附加到myelement。这是一个黑客行为,但你要做什么呢?我准备了一个小提琴,展示了更多的过程,但我不认为它实际上增加了任何新的问题:我从你的代码中看到,你在异步请求的逻辑中有一个巨大的错误。您甚至不太可能从eventGetter获得任何信息,因为它定义了一个空数组,执行一个应该填充它的请求,并立即返回空数组,而无需等待请求完成。当请求最终完成时,它会将结果分配给一个无人关心的数组。然而,这并不是导致comas出现的原因,肯定还有其他原因。您可能看到async被设置为false,所以您描述的问题实际上并没有发生Tanks mccambridge!你的贡献让我的代码正常工作。
$(myelement).html(sample_array.join(''));
["'<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>', ..."];