Ruby 平坦红宝石阵列

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,维度=>[{: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']将阵列分配给数据

将数组分配给数据


展平生成一个数组。不过,我想知道,对于输出,可能您真的需要一个以数组作为值的哈希?这就是您要找的吗

{'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',放入你的数组