Ruby 平坦红宝石阵列
我有一个数组,看起来像这样 [{title=>ga:browser=internetexplorer,维度=>[{:browser=>internetexplorer}],度量=>[{:pageviews=>2047}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Internet%20Explorer&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=Safari,维度=>[{:browser=>Safari}],度量=>[{:pageviews=>1196}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Safari&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=Firefox,维度=>[{:browser=>Firefox}],指标=>[{:pageviews=>835}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Firefox&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=Chrome,维度=>[{:browser=>Chrome}],度量=>[{:pageviews=>227}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Chrome&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=Mozilla兼容代理,维度=>[{:browser=>Mozilla兼容代理}],指标=>[{:pageviews=>60}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Mozilla%20Compatible%20Agent&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=Opera,维度=>[{:browser=>Opera}],度量=>[{:pageviews=>33}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Opera&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=BlackBerry9700,维度=>[{:browser=>BlackBerry9700}],指标=>[{:pageviews=>8}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=BlackBerry9700&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=BlackBerry8900,维度=>[{:browser=>BlackBerry8900}],指标=>[{:pageviews=>7}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=BlackBerry8900&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=Mozilla,维度=>[{:browser=>Mozilla}],指标=>[{:pageviews=>2}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Mozilla&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title=>ga:browser=Camino,维度=>[{:browser=>Camino}],度量=>[{:pageviews=>1}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Camino&start-日期=2010-02-27和结束日期=2011-02-27,更新=>}] 有没有简单的方法将其展平,使其成为: [20471196835227,60,33,8,7,2,1] 而且 ['Internet Explorer'、'Firefox'、'Chrome'、'Mozilla Compatible Agent'、'Opera'、'Blackberry 9700'、'Mozilla'、'Camino']将阵列分配给数据 将数组分配给数据Ruby 平坦红宝石阵列,ruby,arrays,hash,Ruby,Arrays,Hash,我有一个数组,看起来像这样 [{title=>ga:browser=internetexplorer,维度=>[{:browser=>internetexplorer}],度量=>[{:pageviews=>2047}],id=>http://www.google.com/analytics/feeds/data?ids=ga:12316&ga:browser=Internet%20Explorer&start-日期=2010-02-27&结束日期=2011-02-27,更新=>},{title
展平生成一个数组。不过,我想知道,对于输出,可能您真的需要一个以数组作为值的哈希?这就是您要找的吗 {'title'=>[ga:browser=internetexplorer,ga:browser=Safari]} 如果是这样的话,arr作为您的阵列可能会起到类似的作用:
newdata=arr.inject({}) do |memo,subhash|
subhash.each do |key,val|
memo[key] ||= []
memo[key] << val
end
memo
end
puts newdata.inspect
puts newdata['title'].inspect
展平生成一个数组。不过,我想知道,对于输出,可能您真的需要一个以数组作为值的哈希?这就是您要找的吗 {'title'=>[ga:browser=internetexplorer,ga:browser=Safari]} 如果是这样的话,arr作为您的阵列可能会起到类似的作用:
newdata=arr.inject({}) do |memo,subhash|
subhash.each do |key,val|
memo[key] ||= []
memo[key] << val
end
memo
end
puts newdata.inspect
puts newdata['title'].inspect
这并不容易阅读…有没有一种简单的方法来进行漂亮的打印。检查?需要'pp',放入你的数组。漂亮的检查或需要'pp',pp你的数组不容易阅读…有没有一种简单的方法来进行漂亮的打印。检查?需要'pp',放入你的数组。漂亮的检查或需要'pp',放入你的数组