Highcharts如何使用JavaScript变量作为系列数据源?

问题描述 投票:4回答:3

我正在运行一个asp.net代码,该代码创建了一个字符串变量,该变量包含用逗号分隔的浮点数的集合。在C#中类似这样的东西

string myCString = "4.5, 3.1, 6.5, 7.0, -1.3";

然后将此变量放入asp.net网页,并在其中分配给JavaScript变量:

var myJString = '<%=myCString %>';

现在我们进入Highcharts,正常系列的语法如下:

series: [{
     name: 'Series1',
     data: [1.1, 3.8, 5.3, 9.8, 5.0]
       }]

我想做的是将myJString分配给系列的数据字段。我尝试了两种方法,但都没有用。该解决方案可能微不足道,但我甚至还不是一个发烧级的程序员。问题的核心似乎在于Highcharts希望使用数字数组而不是字符串。但是,我对JavaScript中的方括号的理解是它们将其中的内容转换为字符串?

这是NOT的工作内容:

series: [{
     name: 'Series1',
     data: myJString    // does not work
       }]

series: [{
     name: 'Series1',
     data: myJString - 0    // does not work either
       }]

第二次回想起来是从highcharts - variable data causes browser lockup来的,这是有道理的,因为从不仅仅是数字的字符串中减去0达不到目标。

第一次尝试也没有意义,因为它似乎想要一个数字数组而不是一个字符串。现在是我的实际问题:

我可以在JavaScript中廉价地转换我的逗号分隔的浮点数字符串,以便可以在数据字段中使用它,如果可以的话,该怎么办?在后面的代码中执行此操作,然后将数组传递给JavaScript,然后尝试使用数组进行整个操作会更好(在性能方面)吗?这是假设myJString不是浮点数数组是实际问题。

感谢您可能提供的任何见解。

javascript arrays string type-conversion highcharts
3个回答
14
投票

尝试一下:

data: JSON.parse("[" + myJString + "]")

基本上,这会将字符串的内容格式化为JSON数组。然后,parse函数将字符串反序列化为JavaScript数组。


5
投票

由于数据是数组类型,因此可以将数组用于]等值。

myData = [4.5, 3.1, 6.5, 7.0, -1.3];
    

0
投票

另一种简单的方法是使用JavaScript String.split()函数。

© www.soinside.com 2019 - 2024. All rights reserved.