用jQuery / Javascript内爆数组?
我可以爆炸一个数组像在PHP中的jQuery?
你可以在普通的JavaScript中使用Array.prototype.join
:
arrayName.join(delimiter)
我不知道任何更好的jQueryfunction。
喜欢这个:
[1,2,3,4].join('; ')
Array.join
是你需要的,但是如果你喜欢的话, phpjs.org友好的人为你创build了内存 。
然后稍微偏离主题的咆哮。 正如@jon_darkstar alreadt指出的,jQuery是JavaScript,而不是相反。 你不需要知道JavaScript就能够理解如何使用jQuery,但是它肯定不会伤害到你,一旦你开始欣赏可重用性,或者开始寻找更大的图片,你绝对需要学习它。
为了将来的参考,如果你想在没有指定分隔符的情况下模仿PHP的implode()
的行为(字面上只是把这些部分连接在一起),你需要传递一个空的string到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
我们可以在javascript中创build内部替代:
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
不能识别“;” 如何分隔符,但用逗号replace它。 使用jQuery,你可以使用$.each
来implode数组(注意,output_saved_json是数组,tmp是存储内爆数组的string):
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
我已经使用子string删除最后一个“;” 在最后没有必要添加。 但是,如果你愿意,你可以使用像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;
我认为这最后的解决scheme比第一个更慢,因为它需要检查索引是否不同于数组的长度,而每个$.each
不结束。