根据元素的属性获取数组中的元素

时间:2017-08-25 22:19:24

标签: arrays ruby

关于如何根据属性从数组中提取元素,我有一个简单的问题。

我有一个对象数组:

obj_array = [obj1,obj2,obj3........]

每个对象都有一个名为' type'返回一个对象。所以,

object1.type = type1
object2.type = type3
object3.type = type8
object4.type = type1
...

我想查找并提取obj_array中由' type1'键入的对象列表。并将它们存储在一个数组中。生成的数组应如下所示:

type1_array = [object1,object4]

这是我使用循环的解决方案:

type1_array = []
obj_array.each do |e|
   if e.type == type1
      type1_array << e
   end
end

有没有一种简短的方法可以在Ruby中执行此操作而无需遍历数组中的每个元素?

1 个答案:

答案 0 :(得分:2)

Ruby's selected method 可能就是您正在寻找的东西。

obj_array.select { |obj| obj.type == type1 }

显然要确保定义type1