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. Scala:從列表中刪除鍵/值對
- 3. 如何刪除散列值爲空的散列鍵?
- 4. 如何根據另一個散列的鍵/值刪除一個[sub]散列?
- 5. 如何從引用的散列中刪除一個鍵?
- 6. 從給出要刪除的鍵列表的字典中刪除鍵,值對
- 7. 從JSON對象中刪除鍵值對
- 8. 從陣列中刪除多個對象
- 9. 帶有多個鍵值的散列表?
- 10. 提取關鍵值對從散列
- 11. 從Hive地圖中刪除鍵值對?
- 12. 從javax.json.JsonObject中刪除鍵值對
- 13. 從Python字典中刪除鍵/值對
- 14. 在rails中對鍵值爲「YYYY-MM」的散列進行排序
- 15. 散列的perl散列 - 對於eacy鍵組的內部鍵和相應的值
- 16. 具有多個值和一個鍵的Powershell散列表
- 17. 刪除從散列數組中的特定鍵集
- 18. 散列中的一個鍵中有多個值的條件
- 19. 使用散列鍵和值
- 20. 從列表中的多個列表中刪除空值
- 21. 如何遞歸地從(YAML)散列中刪除所有具有空值的鍵?
- 22. 從Python字典中刪除多個鍵
- 23. 從多個表中刪除外鍵
- 24. 包含在散列鍵/值對和單個值
- 25. DynamoDb:刪除具有相同散列鍵
- 26. 刪除多個JSON對象的鍵/值對
- 27. ruby:如何在數組中的某個鍵的值爲0時刪除散列?
- 28. 使用多個值作爲Perl散列中的鍵值
- 29. 刪除python列表中的多個值
- 30. Rails根據深度散列值中的鍵值顯示值
第二種方法會浪費時間並影響性能 – akshay1188 2010-09-09 15:35:34
它會創建新的塊和數組對象,所以速度較慢並且需要更多的RAM。 – 2010-09-09 16:14:53