2012-11-19 253 views
1

我想這個字符串轉換:字符串二維陣列

'[ 
    ['Row1 of first array', 'Row2 of first array'], 
    ['Row1 of 2nd array', 'Row2 of 2nd array'] 
]' 

向用一個維度的三個陣列和兩個項目的陣列。

我的期望輸出是具有2個元素的數組:

  • 陣列1個
  • 陣列2

而且每個陣列具有內部的兩個元素。

有沒有在Jquery做這種轉換?

+1

你能張貼預期的輸出? –

+1

這不是一個有效的字符串 - 你需要在單引號內使用雙引號。 – Blazemonger

+0

如果你使用'eval()',這個字符串將被解釋爲數組 –

回答

3

這不是一個有效的字符串 - 你在單引號內嵌套單引號。但是,如果你的字符串轉換成用在裏面的雙引號一個:

str = '[ ["Row1 of first array", "Row2 of first array"], ["Row1 of 2nd array", "Row2 of 2nd array"] ]' 

那麼你可以簡單地分析它作爲一個JSON對象:

arr = $.parseJSON(str); // returns a two-dimensional array 

這是遠遠比使用eval安全,只有當你完全知道字符串中的內容時才應該這樣做,即使如此,這也是一個懶惰開發人員的標誌。當使用parseJSON時,您知道在完成任務後您會獲得對象或陣列 - 使用eval時,可能會發生任何事情。

-3

我想EVAL將工作:

var str = eval("[['Row1 of first array', 'Row2 of first array'],['Row1 of 2nd array', 'Row2 of 2nd array']]"); 

console.log(str); 

+0

根據一般原則對此進行回撥。永遠不會鼓勵年輕的編碼者使用'eval'。 – Blazemonger