我有這樣一個字符串值:如何使字符串作爲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.
任何一個可以請建議我一個方法如何做到這一點?
我有這樣一個字符串值:如何使字符串作爲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.
任何一個可以請建議我一個方法如何做到這一點?
您正在尋找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");
究竟是第一個「;」因爲在行中for(; n
以下split命令應該有所幫助:
yourArray = yourString.split(";");
請注意,也有逗號。它看起來像OP想要再次分割結果以獲得二維數組。 – pimvdb 2012-01-06 11:00:59
是的,你是對的。我忽略了 – labrassbandito 2012-01-06 11:04:40
嘗試以下操作:
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(','));
});
.forEach()
在IE <不支持= 8這是行不通的。你甚至嘗試運行你的代碼? 'for ... in'循環中'split'的值是數組中的索引,而不是數值。 – 2012-01-06 11:47:57
@ nikc.org解答更新,謝謝。 – 2012-01-06 12:26:14
值得一提的是'Array.forEach'沒有通用的瀏覽器支持。 http://kangax.github.com/es5-compat-table/ – 2012-01-06 12:34:56
如果你需要一個多維數組,你可以嘗試:
var array = yourString.split(';');
var arrCount = array.length;
for (var i = 0; i < arrCount; i++)
{
array[i] = array[i].split(',');
}
谷歌對於「Javascript拆分」 – karim79 2012-01-06 10:55:55
你是指多維數組? – redmoon7777 2012-01-06 11:00:57
@redmoon:是紅色的月亮 – Senthamiz 2012-01-06 11:03:49