2013-07-09 154 views
0

的輸入值我有一個輸入這樣的數據:[16,57.35], [23,56.26], [34,54.57]轉換陣列

,我希望把它變成一個數組

var data =$('#data').val(); 
var array = JSON.parse ("["+data+"]"); 

我有這個錯誤

Uncaught SyntaxError: Unexpected token.

我可以修復它,或者我可以轉換數組中的輸入值?

+5

作品[這裏](http://jsfiddle.net/sRb6x/)... – Teemu

+2

請做一個'的console.log(數據)'和張貼在這裏你實際上是在傳遞什麼。 – Bergi

+1

還要檢查'data.length',可能有一些非打印字符。 – Teemu

回答

1

嘗試使用eval功能:

var data = "123, 456, 789"; 
var array = eval("[" + data + "]"); 

你需要確保你輸入什麼是有效的JSON,但上面的代碼會爲你輸出數組。希望能幫助到你。

+2

它實際上*是*有效的JSON,如果他將它包裝在'[]'中,我第一次錯過了。 – meagar

+0

作品感謝球員 – Marztres

+2

要小心,eval被認爲是有害的:http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea – cfs

3

您的代碼正在工作檢查它here,您可能需要包含所需的jQuery庫或檢查代碼中的其他內容導致它。

data = $('#txt1').val(); 
arr = JSON.parse ("["+data+"]"); 
console.log(arr);