我正在尝试选择哈希的子集。 假设我有一个方法可以做到这一点,例如,
def create_html (entities, low, high)
entities
.select{|k,v| v[:entity_count] < low and v[:community] == true}
.sort_by{| k,v| v[:count]}.each do | k,v |
.....
我想处理各种条件: 假设下限(低)和上限(高)
我也想使用lte和gte。有没有一种简单的方法来处理我的select语句中的所有组合?有更好的方法吗?
答案 0 :(得分:1)
我不确定我明白你要做什么。但你可以使用一个块来提取条件。
def create_html (entities)
entities
.select{|k,v| yield(v[:entity_count], v[:community]) }
.sort_by{| k,v| v[:count]}.each do | k,v |
.....
然后你可以根据那个领域拥有所有条件。
create_html(entities) { |count| count < low }
create_html(entities) { |count| count > low && count < high }
create_html(entities) { |count| count < low }
# Also with community == true
create_html(entities) { |count, community| count < low && community }