使用jQuery / Javascript内爆数组?

时间:2010-11-10 17:00:08

标签: javascript jquery implode

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

7 个答案:

答案 0 :(得分:522)

您可以在纯JavaScript中执行此操作,使用Array.prototype.join

arrayName.join(delimiter)

我不知道任何更好的jQuery函数。

答案 1 :(得分:58)

喜欢这个:

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

答案 2 :(得分:27)

Array.join是您所需要的,但如果您愿意,phpjs.org的友好人员会为您创建implode

然后稍微偏离主题咆哮。正如@jon_darkstar alreadt指出的那样,jQuery是JavaScript而不是相反。你不需要知道JavaScript能够理解如何使用jQuery,但它肯定没有伤害,一旦你开始欣赏可重用性或开始寻找更大的图片,你绝对需要学习它。

答案 3 :(得分:15)

为了将来参考,如果你想模仿PHP's implode() when no delimiter is specified的行为(字面意思只是将各个部分连接在一起),你需要将空字符串传递给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

答案 4 :(得分:3)

工作示例

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

答案 5 :(得分:1)

我们可以在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);

答案 6 :(得分:0)

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删除了最后一个“;”在最后没有必要添加。 但如果您愿意,可以使用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没有结束时,它需要检查索引是否与数组的长度不同。