【发布时间】:2011-04-10 20:50:52
【问题描述】:
我正在尝试在我的网络应用程序中使用 Highcharts,但是我在让我的数组匹配 hightcharts 需要的输出时遇到了一些问题,本质上 hightcharts 在它的 JS 中需要这样的输出:
series: [{
name: 'person',
data: [1562, 873, 1457]
}, {
name: 'car',
data: [7323, 324, 1233]
}, {
name: 'SUV',
data: [832, 6232, 4432]
}]
在这种情况下,数据数组中的每个项目都是新的一天,我的问题是我的数据的组织方式有点不同,尝试转换我的数据以匹配这一点一直很头疼。基本上我的输出是这样的:
[
{:date=>"Sun, 10 Apr 2011", :object_types=>[
{:count=>4279, :class_name=>"person"},
{:count=>8785, :class_name=>"car"},
{:count=>2153, :class_name=>"SUV"}
]},
{:date=>"Sat, 09 Apr 2011", :object_types=>[
{:count=>12206, :class_name=>"person"},
{:count=>29095, :class_name=>"car"},
{:count=>7565, :class_name=>"SUV"}
]},
{:date=>"Fri, 08 Apr 2011", :object_types=>[
{:count=>4159, :class_name=>"person"},
{:count=>8043, :class_name=>"car"},
{:count=>1982, :class_name=>"SUV"}
]}
]
因此,似乎我首先需要将项目首先按(在我的情况下):class_name 分组,然后在 :count 中按天分组为 data 中的每个项目。
我很难找到优雅地做到这一点的“红宝石方式”,正如你可能看到的那样,我在操作数组和哈希方面并不是非常出色,但是在指导我正确地完成这个方面有任何帮助方式值得赞赏。
其次,我最初尝试在我的查询中使用group() 来完成此操作,但这似乎并没有多大帮助,你想吗?我必须解决的另一件事是在没有记录的情况下用“0”填充日期......但我认为接下来我会解决这个问题。
【问题讨论】: