Some_hash.delete_if {|key, value| key == "at" || key == "with" || key == "from"}
我刚刚包括3个,但我有一个7的列表,这条线变得非常长而且丑陋。有没有办法以较短的方式做到这一点,而不必每次都key == SOMEVALUE
?
答案 0 :(得分:6)
答案 1 :(得分:3)
%w[at with from]
.each_with_object(Some_hash){|k, h| h.delete(k)}
答案 2 :(得分:3)
尝试:
keys_to_remove = ['at', 'with', 'from']
hash.delete_if {|key,_| keys_to_remove.include? key}