在javascript中将字符串数组拆分为数字数组

时间:2012-10-09 09:33:18

标签: javascript jqplot

我正在从下拉列表中读取值,具体取决于所选的选项。我正在使用jqPlot来绘制值。

jqPlot需要一组像[91, 6, 2, 57, 29, 40, 95]

这样的值

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

进入

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

是否有人之前遇到过类似的事情,我该怎么做才能让我的值转换为数字数组。

感谢您的帮助

4 个答案:

答案 0 :(得分:5)

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

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

如果您需要支持旧版浏览器,请添加json2.js以在不支持原生浏览器的浏览器中提供JSON支持。

答案 1 :(得分: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] );
})()​

Demo

答案 2 :(得分:2)

当你使用jQuery时,你可以做到

$.parseJSON("[91, 6, 2, 57, 29, 40, 95]");

答案 3 :(得分:1)

你可以使用

str.slice(1, -1).split(',').map(function(s){return parseInt(s, 10);});