用JavaScript内爆数组?
我可以像在PHP中那样在jQuery中内爆数组吗?如下所示:用JavaScript内爆数组?,javascript,implode,Javascript,Implode,我可以像在PHP中那样在jQuery中内爆数组吗?如下所示: [1,2,3,4].join('; ') 您可以在纯JavaScript中执行此操作,请使用: 这是你所需要的,但是如果你喜欢,这里的友好的人们已经为你创造了 然后是一些稍微离题的咆哮。正如@jon_darkstar alreadt指出的,jQuery是JavaScript,而不是JavaScript。您不需要了解JavaScript就可以理解如何使用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;iarray.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