假设我有一组具有相同键的哈希值,如:
array = [
{attr1: val1, attr2: val2},
{attr1: val3, attr2: val4}
]
事情是,我希望有一些很酷的调用,如ActiveRecords'“where”,以便在特定元素上面搜索数组。像
这样的东西array.where(attr1: val1)
将返回符合条件的所有元素。使用普通的Ruby。
是的,总有一个很好的老.each
,但是让我们在这里以金属红宝石的方式踏上完全。
谢谢!
答案 0 :(得分:4)
ruby中有find
和select
(分别为一个或多个结果)。
selected = array.select do |item|
item[:attr1] == 'something'
end
select
会将array
的每个元素传递给块,然后选择块返回truthy值的那些元素。
find
类似,但它将返回块返回truthy值的第一个元素。