在Ruby中,可以使用uniq
方法对哈希中的键和值进行去重。以下是一些示例:
hash = {a: 1, b: 2, c: 3, a: 4, d: 5}
unique_keys = hash.keys.uniq
puts unique_keys.inspect # 输出: [:a, :b, :c, :d]
hash = {a: 1, b: 2, c: 3, a: 4, d: 5}
unique_values = hash.values.uniq
puts unique_values.inspect # 输出: [1, 2, 3, 4, 5]
hash = {a: 1, b: 2, c: 3, a: 4, d: 5}
unique_hash = hash.each_with_object({}) do |(key, value), result|
result[key] = value
end
puts unique_hash.inspect # 输出: {:a=>1, :b=>2, :c=>3, :d=>5}
请注意,这些方法不会修改原始哈希。如果需要修改原始哈希,请使用dup
方法创建一个新的哈希副本,然后对副本进行操作。