0

我正在根据选择的选项从下拉列表中读取一个值。我正在使用 jqPlot 来绘制值。

jqPlot 需要一个值数组,例如[91, 6, 2, 57, 29, 40, 95]

但是当我从下拉框中读取值时,它会作为一个完整的字符串出现"[91, 6, 2, 57, 29, 40, 95]"

我尝试拆分它,但我得到了["91", "6", "2", "57", "29", "40", "95"]它不会正确显示图表。

有没有人以前遇到过这样的事情,我该怎么做才能让我的值转换成一个数字数组。

谢谢你的帮助

4

4 回答 4

5

您可以使用JSON.parse()将该字符串转换为 JavaScript 数组。字符串中的数字没有被引用,因此数组也将包含数字。您可以删除所有解析字符串的代码,因为您不再需要它了。

>>> JSON.parse("[91, 6, 2, 57, 29, 40, 95]")
[91, 6, 2, 57, 29, 40, 95]

如果您需要支持旧版浏览器,请将json2.js添加到原生不支持它的浏览器中的 shim JSON 支持。

于 2012-10-09T09:35:10.897 回答
2

当您使用 jQuery 时,您可以这样做

$.parseJSON("[91, 6, 2, 57, 29, 40, 95]");
于 2012-10-09T09:51:47.347 回答
2

您可以使用 JSON.parse 将字符串 "[91, 6, 2, 57, 29, 40, 95]" 更改为数组:

​(function(){
    var a = '[1,2,3]';
    var b = JSON.parse('[1,2,3]');
    alert(b +'\n'+ typeof(b)+'\n'+ b[0] );
})()​

演示

于 2012-10-09T09:40:11.883 回答
1

您可以使用

str.slice(1, -1).split(',').map(function(s){return parseInt(s, 10);});
于 2012-10-09T09:35:22.150 回答