2011-04-18 39 views
6

我有红宝石对象的数组,看起来是这样的:最Rubyish方式获取包含对象数组的特定值的数组?

[#<email: "someemail" other_properties: "SDFDF">, #<...>, #<...>] 

阵列中的每个对象都有一个email属性。我想获得数组中所有ruby对象的所有电子邮件属性的新数组。

执行的代码后,我将有一个看起来像这样的数组:

["[email protected]", "[email protected]", ...] 

我新的红宝石,并希望这样做能够以最rubyish方式。

我的问题是,在ruby中做这件事的最好方法是什么?

回答

16

可以使用map方法块应用到阵列中的每个元素,返回一个包含每个调用的结果,一个新的数组:

somearray.map {|x| x.email} 
+0

谢谢!这正是我所追求的。我会尽快让我接受。 :) – Alex 2011-04-18 20:24:19

+8

在Ruby 1.87+中,你可以简化为'somearray.map(&:email)' – Phrogz 2011-04-18 20:38:01

相关问题