【发布时间】:2015-03-16 11:33:31
【问题描述】:
我有一个单词和计数的哈希
result_hash
# => {"should"=>1790.8069584736252,
# "is"=>1580.7037037037037,
# "may"=>1562.1964085297418,
# "used"=>1452.4938271604938,
以及我需要从哈希中删除的一组抑制词(键/值对)。
我尝试了except and extract,但似乎没有任何内容被删除:Was 在禁止列表和结果哈希中,即使在我使用 except 之后也是如此。
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 中删除禁止列表(键和值)。
【问题讨论】:
-
它不需要数组。请关注apidock.com/rails/Hash/except 并使用“splat 运算符”。
-
您应该添加一个 Rails 标签,因为您愿意使用 Rails 方法。纯 Ruby 解决方案是
result_hash.keep_if { |k,_| !suppression_list.include?(k) }。 -
Cary,我只为这件事添加了 active_support,所以我将删除它并使用您的解决方案。我很高兴现在了解这两者并意识到哪个是轨道,哪个是纯红宝石解决方案。谢谢!
标签: ruby-on-rails ruby arrays hash