用jQuery / Javascript放大数组?


Answers:


546

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

arrayName.join(delimiter)

我不知道有哪个更好的jQuery函数。


4
主持人可以强制接受此答案,还是可以通过某些方法使其达到最高位置?最初阅读本文时,我错过了这个答案。
PressingOnAlways 2014年


28

Array.join是您所需要的,但是如果您愿意,phpjs.org的友好伙伴implode为您创建。

然后,一些话题脱离话题。正如@jon_darkstar已经指出的那样,jQuery是JavaScript,而不是JavaScript。您不需要了解JavaScript就能理解如何使用jQuery,但是它肯定不会受到伤害,一旦您开始欣赏可重用性或开始着眼于大局,您绝对需要学习它。


23
再说一次,javascript是我最喜欢的jQuery插件;-)
jon_darkstar 2012年


10

使用join()方法通过连接数组中的所有元素来创建并返回新字符串。

工作实例

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


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);

12
教科书的情况下不要做。不要在循环中执行字符串连接。不要用自己的慢代码代替快速内置函数。使用Array构造函数而不是文字是不必要的冗长。如果您迫切需要重新创建内爆函数,那么明智的做法是将内置的join方法包装到您自己的函数中。更聪明的是学会你所使用的编程语言。
mikerobi

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

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不结束就检查索引是否不同于数组的长度。


如果得到的是','而不是';' 您忘记了将分隔符传递给join方法。试试your_array.join(';')
mikerobi 2013年

我在那个时候尝试过,但是在IE中不起作用(我不记得确切的版本,但是我认为那是IE6)。那时我需要支持它(企业应用程序...)。在较新的浏览器中,您的注释可能很有意义。感谢Mike的来信,并感谢您在我为什么使用此方法之前的不赞成。
jaysponsored 2013年

1
join参数适用于IE 4、5、5.5、6+。我可能没有在IE3中工作,但是我无法获得执行任何JavaScript的副本,因此无法进行测试。
mikerobi

是的,它有效。但不能使用“;”。它加入但替换“;” 用“”至少在Server 2003中
jaysponsored
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.