【发布时间】:2015-02-20 11:24:57
【问题描述】:
很抱歉问,但我有点挣扎。基本上我有以下功能:
weekly_reach_data = weekly_reach_arr.map do |data| [
{
name: "DCable",
data: {x: data['Graph numerics'].to_i, y: data['DCable'].to_f}
},
{
name: "DSat",
data: {x: data['Graph numerics'].to_i, y: data['DSat'].to_f}
},
{
name: "DTT",
data: {x: data['Graph numerics'].to_i, y: data['DTT'].to_f}
}
]
end
这会以这种形式输出数据:
{:name=>"DCable", :data=>{:x=>1, :y=>1.8}}
{:name=>"DSat", :data=>{:x=>1, :y=>7.48}}
{:name=>"DTT", :data=>{:x=>1, :y=>5.81}}
{:name=>"DCable", :data=>{:x=>2, :y=>2.29}}
{:name=>"DSat", :data=>{:x=>2, :y=>7.74}}
{:name=>"DTT", :data=>{:x=>2, :y=>5.82}} etc
但是,我要求数据采用这种形式:
{:name=>"DCable", :data=>[{:x=>1, :y=>2}, {:x=>2, :y=>3}]}
{:name=>"DSat", :data=>[{:x=>1, :y=>5}, {:x=>2, :y=>8}]}
{:name=>"DTT", :data=>[{:x=>1, :y=>3}, {:x=>2, :y=>9}]}
如您所见,前者正在循环并创建多个条目。有人知道我如何重建地图函数以这种形式输出吗?
Weekly_reach_arr 是这种形式的数组:
{"Graph numerics"=>"1", "Users"=>"S", "All platforms"=>"14.99", "DSat"=>"7.48", "DTT"=>"5.81", "DCable"=>"1.80", "% Reach"=>"S", "Target"=>"33.33%"}
{"Graph numerics"=>"2", "Users"=>"O", "All platforms"=>"15.60", "DSat"=>"7.74", "DTT"=>"5.82", "DCable"=>"2.29", "% Reach"=>"O", "Target"=>"33.33%"}
{"Graph numerics"=>"3", "Users"=>"N", "All platforms"=>"16.83", "DSat"=>"7.78", "DTT"=>"6.65", "DCable"=>"2.52", "% Reach"=>"N", "Target"=>"33.33%"}
{"Graph numerics"=>"4", "Users"=>"D", "All platforms"=>"16.27", "DSat"=>"7.64", "DTT"=>"7.01", "DCable"=>"1.68", "% Reach"=>"D", "Target"=>"33.33%"}... etc
【问题讨论】:
-
weekly_reach_arr 是什么样的?
-
添加到问题中,谢谢:)
-
是否需要完全这样输出?您可能会丢失
name和data键并将其展平为Hash,其中name作为键,data作为值 -
不幸的是,是的。我把它推到一个 Dashing Rickshaw Graph 上。 Rickshaw 只接受特定样式的数组。
标签: ruby arrays dictionary