我正在使用Highcharts(链接到特定演示——单击查看选项以比较下面的代码)来呈现一些数据供个人使用。
[注意:这几乎肯定是与我有关的错误,所以我并不是要暗示 Highcharts 有问题——它真的是一个很棒的 api!]
在设置图表对象的series.data字段时,我遇到了奇怪的数组切片。
例如,这很好用:
series: [{
name: 'seriesName',
data: [22, 24, 15]
}]
并绘制了三个数据点,其值为 22、24 和 15。
然而,
series: [{
name: 'sillySeries',
data: chartData[0]
}]
渲染 3 个点,其值为 2、4 和 5,点的标题分别为 2、2 和 1……也就是说,它将数组条目拆分为标题,然后是两位数的值。
console.log 向我展示了 chartData 的样子
22,24,15,2010-9,2010-10,2010-11
(3 个月的 3 个值)
虽然实际的数组更像 [22,24,15][2010-9,2010-10,2010-11]
我的二维数组chartData[][]
有[column][row]
数据索引,我认为请求chartData[0]
会返回一个数组。
也许我的问题应该是:如何从 2d 数组表示中返回 1d 数组以在 javascript 对象中设置属性/值?似乎我可能忽略了一些非常明显的东西。
编辑:
data: [24]
在 24 处绘制一个点,太棒了。
data: '24'
将数据拆分为标题,然后是值,有效地在 4 而不是 24 处绘制一个点。
因此,当我尝试将数组传递给数据字段时,表示形式变为字符串。有什么办法可以像 string.toArray 一样吗?
编辑2:
chartData[col][row]
被声明为空数组
var chartData = [];
然后通过迭代 HTML 表的行和列来填充值,其中最内层的循环内容看起来像
chartData[cellIndex][rowIndex] = $(currentCell).text();