从ruby哈希中删除特定键(和值)

时间:2015-01-18 07:38:57

标签: ruby-on-rails ruby arrays hash

我有一个单词和计数哈希

result_hash
# => {"should"=>1790.8069584736252,
# "is"=>1580.7037037037037,
# "may"=>1562.1964085297418,
# "used"=>1452.4938271604938,

和我需要从哈希中删除的一个抑制字数组(键/值对)。

我尝试except and extract并且似​​乎没有删除任何内容: 是否在抑制列表和结果哈希中,即使我使用了除外。

suppression_list.class    # => Array
suppression_list.first.class    # => String
result_hash.except(suppression_list)["was"]    # => 736.1234567901234
suppression_list.index("was")    # => 443
result_hash["was"]    # => 736.1234567901234
new = result_hash.except(suppression_list)
new["was"]    # => 736.1234567901234
new = result_hash.except!(suppression_list)
new["was"]    # => 736.1234567901234
result_hash["was"]    # => 736.1234567901234

请帮我从result_hash删除抑制列表(键和值)。

1 个答案:

答案 0 :(得分:4)

Hash#exceptHash#except!不接受键数组,但键接受任意参数。您需要使用*运算符将数组转换为方法参数:

result_hash.except(*suppression_list)