16
A
回答
17
number.delete "A"
number.delete "B"
number.delete "C"
或者,更少高性能但更简洁:
number.reject! {|k, v| %w"A B C".include? k }
13
,或者比第二Chris的溶液更好的性能,但比第一较短:
%w"A B C".each{|v| number.delete(v)}
3
ActiveSupport是Rails的一部分,它提供了几种内置方法可以帮助您实现目标。
如果你只是想删除一些键值对,您可以使用Hash#except!
number.except!(:a, :b, :c)
如果你想保持原来的哈希值,然后使用Hash#except
new_hash = number.except!(:a, :b, :c)
new_hash # => {:d=>4}
number # => {:a=>1, :b=>2, :c=>3, :d=>4}
你也可以采用无轨道的方式:
new_hash = number.dup.tap do |hash|
%i[a b c].each {|key| hash.delete(key)}
end
new_hash # => {:d=>4}
number # => {:a=>1, :b=>2, :c=>3, :d=>4}
P.S .:最后一个代码示例非常慢,我只是提供它作为替代。
相关问题
- 1. Redis通过散列值中的模式删除散列键
- 2. 如何根据另一个散列的键/值删除一个[sub]散列?
- 3. 从阵列中删除多个对象
- 4. 带有多个键值的散列表?
- 5. 从javax.json.JsonObject中删除键值对
- 6. 具有多个值和一个键的Powershell散列表
- 7. 散列中的一个键中有多个值的条件
- 8. 使用散列键和值
- 9. 如何递归地从(YAML)散列中删除所有具有空值的键?
- 10. 从多个表中删除外键
- 11. 包含在散列键/值对和单个值
- 12. 删除多个JSON对象的键/值对
- 13. ruby:如何在数组中的某个键的值为0时删除散列?
- 14. 删除python列表中的多个值
- 15. 从散列中删除重复项?
- 16. 删除重复键值对中的值在列表中
- 17. 从具有特定值的多个阵列中删除值
- 18. 在散列时将多个值赋给perl中的一个键
- 19. 如何值从params散列,在Rails中
- 20. 的Python从字典中删除一个键与多个键
- 21. 删除在轨道上的红宝石参数散列的键和值
- 22. 删除Cookie键值对
- 23. 从[list] dictionary中删除多个值python
- 24. 从XSLT中删除多个值
- 25. 如何将多个散列值的数组中有相同键
- 26. 如何从散列值中删除所有换行符?
- 27. 从对象中删除值
- 28. 访问Ruby(1.9)散列中的最后一个键值对
- 29. 从NSArray中删除重复的键值
- 30. Python - 从多个令牌键和值创建键值对
第二种方法会浪费时间并影响性能 – akshay1188 2010-09-09 15:35:34
它会创建新的块和数组对象,所以速度较慢并且需要更多的RAM。 – 2010-09-09 16:14:53