有没有一种方法可以将特定值的用户哈希过滤为另一个数字?

时间:2019-05-09 06:44:50

标签: ruby-on-rails ruby sorting filter

我正在一个项目上,我尝试按特定值过滤用户的哈希值,有没有办法做到这一点而无需多循环?

这是针对个人项目的,我尝试获取不受一个称为wc_max的值限制的用户的哈希。

这是我得到的数据的样本:

我有这样的用户数据:

...
[
 {id: 1, wc_max: 5, active: true},
 {id: 2, wc_max: 15, active: true},
 {id: 3, wc_max: 13, active: true},
]
...

和数字数组:

...
 [14, 19, 20]
...

我期望获得一个新的用户数组,其中wc_max严格优于该数字数组中的一个。 对于我给出的示例,我希望获得ID为2的用户,因为其wc_max(15)严格优于一个数组的数字(14)。

如果您有任何迹象或信息可以实现此目标,或者需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

获取数组的最小值,并在用户的数组上使用select

> u
 => [{:id=>1, :wc_max=>5, :active=>true}, {:id=>2, :wc_max=>15, :active=>true}, {:id=>3, :wc_max=>13, :active=>true}]
> a
 => [14, 19, 20] 
> min = a.min
> u.select { |i| i[:wc_max] > min }
 => [{:id=>2, :wc_max=>15, :active=>true}]