2012-01-06 39 views
2

我有這樣一個字符串值:如何使字符串作爲java腳本中的數組?

1,2,3;4,5,6;7,8,9;a,b,c;d,e,f;g,h,i 

我需要將其轉換成數組中的JavaScript像

1 2 3 

4 5 6 

7 8 9 

etc. 

任何一個可以請建議我一個方法如何做到這一點?

+3

谷歌對於「Javascript拆分」 – karim79 2012-01-06 10:55:55

+1

你是指多維數組? – redmoon7777 2012-01-06 11:00:57

+0

@redmoon:是紅色的月亮 – Senthamiz 2012-01-06 11:03:49

回答

3

您正在尋找String.split。在你的情況下,你需要分裂兩次。一旦用;將字符串拆分爲塊,然後分別用,拆分每個塊以達到您要尋找的數組結構。

function chunkSplit(str) { 
    var chunks = str.split(';'), // split str on ';' 
     nChunks = chunks.length, 
     n = 0; 

    for (; n < nChunks; ++n) { 
     chunks[n] = chunks[n].split(','); // split each chunk with ',' 
    } 

    return chunks; 
} 

var arr = chunkSplit("1,2,3;4,5,6;7,8,9;a,b,c;d,e,f;g,h,i"); 
+0

究竟是第一個「;」因爲在行中for(; n 2013-12-01 02:26:38

-1

以下split命令應該有所幫助:

yourArray = yourString.split(";"); 
+0

請注意,也有逗號。它看起來像OP想要再次分割結果以獲得二維數組。 – pimvdb 2012-01-06 11:00:59

+0

是的,你是對的。我忽略了 – labrassbandito 2012-01-06 11:04:40

1

嘗試以下操作:

var yourString = '1,2,3;4,5,6;7,8,9;a,b,c;d,e,f;g,h,i'; 
var array = []; 
yourString.split(';').forEach(function(value) { 
    array.push(value.split(',')); 
}); 
+0

這是行不通的。你甚至嘗試運行你的代碼? 'for ... in'循環中'split'的值是數組中的索引,而不是數值。 – 2012-01-06 11:47:57

+0

@ nikc.org解答更新,謝謝。 – 2012-01-06 12:26:14

+1

值得一提的是'Array.forEach'沒有通用的瀏覽器支持。 http://kangax.github.com/es5-compat-table/ – 2012-01-06 12:34:56

1

如果你需要一個多維數組,你可以嘗試:

var array = yourString.split(';'); 

var arrCount = array.length; 
for (var i = 0; i < arrCount; i++) 
{ 
    array[i] = array[i].split(','); 
} 
相關問題