2010-11-10 57 views

回答

55

這樣的:

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

可以在普通的JavaScript做到這一點,使用Array.prototype.join

arrayName.join(delimiter) 

我不知道任何jQuery的功能是更好的。

+0

@jball感謝您的改進 – 2010-11-10 17:18:16

+3

主持人的力量可以接受這個答案或一些如何讓它到頂部?最初讀到這個時我錯過了這個答案。 – PressingOnAlways 2014-03-01 02:40:53

+0

@PressingOn總是感謝善良版主不能 – Andrew 2017-06-09 18:38:34

26

Array.join是你需要的,但如果你喜歡,phpjs.org友好的人已經爲你創建implode

然後稍微偏離主題的咆哮。正如@jon_darkstar alreadt指出的那樣,jQuery是JavaScript,而不是相反。您不需要需要瞭解JavaScript以便能夠理解如何使用jQuery,但它肯定不會受到傷害,並且一旦開始欣賞可重用性或開始查看更大的圖片,您絕對需要了解它。

+1

+1鏈接到文檔,總是讚賞。 – rymo 2012-04-06 21:55:17

+22

然後再次,JavaScript是我最喜歡的jQuery插件;-) – 2012-05-03 17:59:03

2

我們可以創建在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); 
+10

教科書案件的事情不要做。不要在循環中執行字符串連接。不要用自己的慢代碼替換快速構建的函數。使用'Array'構造函數而不是文字是非常詳細的。如果你急於重新創建implode函數,聰明的事情就是用你自己的函數來包裝內置的join方法。更聰明的是學習你正在編程的語言。 – mikerobi 2013-04-17 14:35:06

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; 

我想,這最後的解決方案是比第一一個更慢,因爲它需要檢查,如果指數低於陣列每次同時的lenght不同$.each不結束。

+0

如果你得到','而不是';'你忘了將分隔符傳遞給join方法。嘗試'your_array.join(';')' – mikerobi 2013-04-17 14:40:42

+0

我在那段時間嘗試過它,但它在IE中不工作(我不記得確切的版本,但我認爲這是IE6)。那時我需要支持它(企業應用程序...)。在新的瀏覽器中,你的筆記可能是有道理的。感謝Mike的提示,感謝downvote之前問我爲什麼使用這種方法。 – jaysponsored 2013-04-22 16:26:17

+1

連接參數在IE 4,5,5.5,6+中可用。我可能在IE3中工作過,但我無法讓我的副本執行任何JavaScript,所以我無法測試。 – mikerobi 2013-04-22 18:06:24

14

以供將來參考,如果你想模仿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