2013-07-09 37 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);