我想传递哈希:
filter_search = {age: 20, weight: 30, height: 30, salary: (100000..200000)}
到方法
def search(array, filter)
array.select do |elem|
???????
end
end
filtered_array = search(some_array, filter_search)
我该怎么做?也许我的想法是错误的,还有另一种模式可以解决这个问题?
假设数组参数是一个具有适当方法(年龄、体重、身高、薪水)的对象数组,并且您希望返回与您的哈希过滤器完全匹配的对象过滤数组,这样的东西可能会起作用。
def search(array, filter)
array.select do |elem|
filter.all? do |key, value|
elem.send(key) == value
end
end
end
如果数组中有哈希而不是对象,则可以使用:
def search(array, filter)
array.select do |elem|
filter.all? do |key, value|
elem[key] == value
end
end
end