【发布时间】:2015-05-10 13:30:55
【问题描述】:
我正在从 SQL 源中提取一些数据,我可以将这些数据作为一个简单的数组(按日期分组显示)放入 javascript 脚本中,其中包含周数、任务数和花费的小时数:
mydata = [
// weekno, taskno, hours
["2014-14",160,37.5],
["2014-15",160,30],
["2014-15",243,7.5],
["2014-16",160,37.5],
["2014-17",0,7.5],
["2014-17",3,7.5],
["2014-17",321,22.5],
["2014-18",0,7.5],
["2014-18",321,30],
["2014-19",3,7.5],
["2014-19",295,30]
];
我将使用 HighCharts 绘制它,我需要将它放入两个属性数组中,如下所示:
properties = {
categories: [ "2014-14","2014-15","2014-16","2014-17","2014-18","2014-19"],
series: [
// Task Week
// No 14 15 16 17 18 19
//
{ name: '0', data: [ 0, 0, 0, 7.5, 7.5, 0 ] },
{ name: '3', data: [ 0, 0, 0, 7.5, 0, 7.5 ] },
{ name: '160', data: [ 37.5, 30, 37.5, 0, 0, 0 ] },
{ name: '243', data: [ 0, 7.5, 0, 0, 0, 0 ] },
{ name: '295', data: [ 0, 0, 0, 0, 0, 30 ] },
{ name: '321', data: [ 0, 0, 0, 22.5, 30, 0 ] }
]
}
除了循环之外,我是否缺少一些简洁、惯用的方法来执行此操作?
【问题讨论】:
-
简短的回答是否定的,循环在这里是必不可少的。您也许可以找到一个可以简化工作的库,但它仍然会遍历数据。
-
除了循环之外,如果您想避免循环内循环类型的逻辑,您还需要查找映射。
-
在 highcharts 中,您应该使用时间戳而不是字符串作为日期。所以你需要转换它(通过即 Date.parse 或使用 Date.UTC)。
标签: javascript jquery multidimensional-array highcharts idioms