来自散列数组中特定键的聚合值

时间:2015-04-28 13:12:24

标签: ruby

我试图构建一个来自哈希数组的值数组,目前我的代码看起来像这样:

ids = array_of_hashes.inject([]) do |result,instance|
    result << instance[:id]
    result
end

我只是想知道是否有更有效的方法吗?

2 个答案:

答案 0 :(得分:4)

您可以将其更改为:

ids = hash.map { |instance| instance[:id] }

不一定更高效,但更容易阅读和维护!

祝你好运!

答案 1 :(得分:1)

有两种简单的方法:

 1. ids = hash.collect{|h| h[:id]} 
 2. ids = hash.map{|h| h[:id]}

现在你会问两者有什么不同?有关解释,请参阅this accepted answer