用JavaScript内爆数组?

用JavaScript内爆数组?,javascript,implode,Javascript,Implode,我可以像在PHP中那样在jQuery中内爆数组吗?如下所示: [1,2,3,4].join('; ') 您可以在纯JavaScript中执行此操作,请使用: 这是你所需要的,但是如果你喜欢,这里的友好的人们已经为你创造了 然后是一些稍微离题的咆哮。正如@jon_darkstar alreadt指出的,jQuery是JavaScript,而不是JavaScript。您不需要了解JavaScript就可以理解如何使用jQuery,但这肯定不会有什么坏处,一旦您开始欣赏可重用性或开始着眼于更大的前景

我可以像在PHP中那样在jQuery中内爆数组吗?

如下所示:

[1,2,3,4].join('; ')

您可以在纯JavaScript中执行此操作,请使用:

这是你所需要的,但是如果你喜欢,这里的友好的人们已经为你创造了


然后是一些稍微离题的咆哮。正如@jon_darkstar alreadt指出的,jQuery是JavaScript,而不是JavaScript。您不需要了解JavaScript就可以理解如何使用jQuery,但这肯定不会有什么坏处,一旦您开始欣赏可重用性或开始着眼于更大的前景,您绝对需要学习它。

我们可以创建JavaScript内爆的替代方案:

function my_implode_js(separator,array){
       var temp = '';
       for(var i=0;i<array.length;i++){
           temp +=  array[i] 
           if(i!=array.length-1){
                temp += separator  ; 
           }
       }//end of the for loop

       return temp;
}//end of the function

var array = new Array("One", "Two", "Three");


var str = my_implode_js('-',array);
alert(str);
函数my_introde_js(分隔符、数组){
var temp=“”;

对于(var i=0;i
array.join
未识别“;”如何使用分隔符,而是将其替换为逗号。使用jQuery,您可以使用
$。每个
内爆一个数组(请注意,output\u saved\u json是数组,tmp是将存储内爆数组的字符串):

我已经使用子字符串删除了最后添加的“;”而没有必要。 但如果您愿意,可以使用类似以下内容的
子字符串

var tmp = "";
$.each(output_saved_json, function(index,value) {
    tmp = tmp + output_saved_json[index];

    if((index + 1) != output_saved_json.length) {
         tmp = tmp + ";";
    }
});

output_saved_json = tmp;

我认为最后一个解决方案比第一个解决方案慢,因为它需要在
$时每次检查索引是否不同于数组的长度。每个
都不会结束。

供将来参考,如果您想模仿的行为(实际上只是将片段连接在一起),您需要将空字符串传递到Javascript的
join()
中,否则它默认使用逗号作为分隔符:

var bits = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'];
alert(bits.join());    // H,e,l,l,o, ,W,o,r,l,d
alert(bits.join(''));  // Hello World
使用join()方法通过连接数组中的所有元素来创建并返回一个新字符串

工作示例

var-arr=['A','b','C','d',1','2',3','4'];
var res=arr.join(“;”)

log(res);
再说一遍,javascript是我最喜欢的jQuery插件;-)不要做的事情的教科书案例。不要在循环中执行字符串连接。不要用自己的慢代码替换快速内置函数。使用
数组
构造函数而不是文本是不必要的冗长。如果你非常想重新创建内爆函数,明智的做法是用h你自己的函数。更聪明的事情是学习你正在编程的语言。如果你得到的是一个“,”而不是一个“;”,你忘记了将分隔符传递给join方法。试试
你的数组。join(“;”)
我当时试过,但在IE中不起作用(我不记得确切的版本,但我想那是IE6).我当时需要支持它(企业应用程序…)。在新浏览器中,您的注释可能有意义。谢谢您的注释Mike,谢谢您在询问我为什么使用此方法之前的downvote。join参数在IE 4、5、5.5、6+中起作用。我可能在IE3中不起作用,但我无法让我的副本执行任何JavaScript,因此我无法测试。是的,它起作用。但不使用“;”。它将“;”替换为“;”“,”,至少在2003年服务器上。版主可以强制接受这个答案吗,或者如何让它登上榜首?最初阅读本文时,我错过了这个答案。
var tmp = "";
$.each(output_saved_json, function(index,value) {
    tmp = tmp + output_saved_json[index];

    if((index + 1) != output_saved_json.length) {
         tmp = tmp + ";";
    }
});

output_saved_json = tmp;
var bits = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'];
alert(bits.join());    // H,e,l,l,o, ,W,o,r,l,d
alert(bits.join(''));  // Hello World