【问题标题】:Highcharts how to use JavaScript variable as series data source?Highcharts 如何使用 JavaScript 变量作为系列数据源?
【发布时间】:2011-08-10 17:28:43
【问题描述】:

我正在运行一个 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 中方括号的理解是它们将其中的任何内容转换为字符串?

以下是 起作用的:

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


【解决方案1】:

试试这个:

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

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

【讨论】:

  • 这确实有效,非常感谢您,您先生是一位学者和一位绅士!因为它现在正在工作,所以我通过创建一个数组服务器端然后将它从 C# 传递到一个 JavaScript 数组来避免 JSON 来尝试这个可能没有什么意义。但是,我是否应该使用服务器端阵列尝试此操作,我将在此处发回并用我发现的内容更新原始问题。
  • 真的很棒,非常感谢先生。
  • 真的很棒。非常感谢
【解决方案2】:

由于数据是数组类型,因此您可以将数组用于像

这样的值
myData = [4.5, 3.1, 6.5, 7.0, -1.3];

【讨论】:

    【解决方案3】:

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

    系列:[{ 名称:“系列1”, 数据:myJString.split(', ') }]

    如果您不确定逗号后是否有空格,请使用 RegEx。

    系列:[{ 名称:“系列1”, 数据:myJString.split(/,[\d]*/) }]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多