0

例如,我想从具有相同开头的哈希中删除所有键

myhash[:x_key_a]
myhash[:x_key_b]
myhash[:x_key_c]

所以我想删除所有以xfrom开头的键myhash

除了遍历所有键之外,还有更好的方法吗?

4

2 回答 2

3
myhash.delete_if{ |key, _| key.to_s.start_with?('x') }
于 2013-08-01T08:47:32.947 回答
0
myhash = {}

myhash[:x_key_a] = 1
myhash[:x_key_b] = 2
myhash[:y_key_c] = 3

p myhash.delete_if{ |key, _| key.match(/^x/) }
# => {:y_key_c=>3}
于 2013-08-01T09:22:42.577 回答