我正在运行一个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不是浮点数数组是实际问题。
感谢您可能提供的任何见解。
尝试一下:
data: JSON.parse("[" + myJString + "]")
基本上,这会将字符串的内容格式化为JSON数组。然后,parse
函数将字符串反序列化为JavaScript数组。
由于数据是数组类型,因此可以将数组用于]等值。
myData = [4.5, 3.1, 6.5, 7.0, -1.3];
另一种简单的方法是使用JavaScript String.split()函数。