我可以像在 PHP 中一样在 jQuery 中内爆一个数组吗?
7 回答
您可以在纯 JavaScript 中执行此操作,请使用Array.prototype.join
:
arrayName.join(delimiter);
像这样:
[1,2,3,4].join('; ')
Array.join
是您需要的,但如果您愿意,phpjs.org上的友好人士已经为您创建implode
了。
然后是一些稍微偏离主题的咆哮。正如@jon_darkstar 已经指出的那样,jQuery 是 JavaScript,反之亦然。您无需了解 JavaScript 即可了解如何使用 jQuery,但它肯定不会受到伤害,一旦您开始欣赏可重用性或开始放眼大局,您绝对需要学习它。
为了将来参考,如果您想在没有指定分隔符时模仿PHP 的implode()
行为(实际上只是将各个部分连接在一起),您需要将一个空字符串传递给 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('; ')
console.log(res);
我们可以在 javascript 中创建 implode 的替代方案:
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);
array.join
无法识别“;” 如何分隔符,但用逗号替换它。使用 jQuery,您可以使用$.each
内爆数组(注意 output_saved_json 是数组,tmp 是存储内爆数组的字符串):
var tmp = "";
$.each(output_saved_json, function(index,value) {
tmp = tmp + output_saved_json[index] + ";";
});
output_saved_json = tmp.substring(0,tmp.length - 1); // remove last ";" added
我已经使用子字符串删除了最后一个“;” 没有必要在最后添加。但如果你愿意,你可以使用substring
类似的东西:
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;
我认为最后一个解决方案比第一个解决方案更慢,因为它每次都需要检查索引是否与数组的长度不同,而$.each
不要结束。