0

我正在尝试选择哈希的子集。假设我有一个方法可以做到这一点,例如,

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 |
.....

我想处理各种情况:假设下限(低)和上限(高)

  1. 计数 < 低
  2. 计数 > 低和计数 < 高
  3. 计数 > 高

我也想使用 lte 和 gte。有没有一种简单的方法来处理我的选择语句中的所有组合?有一个更好的方法吗?

4

1 回答 1

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 }
于 2013-04-23T03:53:00.480 回答