Ruby 类 Hash 具有方法“反转”,可以在键和值之间进行“反转”并删除相同的键(在我们的例子中是:“1=>:a”)。 h = {a: 1, b: 2, c: 1} => {:a=>1, :b=>2, :c=>1} h.反转 => {1=>:c, 2=>:b}
如何实现自定义哈希方法“c_invert”,它会返回第一对(而不是最后一对)重复的键 => 值?例如:
> h = {a: 1, b: 2, c: 1}
=> {:a=>1, :b=>2, :c=>1}
> h.c_invert
=> {1=>:a, 2=>:b}
最佳答案
class Hash
def c_invert
Hash[to_a.reverse].invert
end
end
或
class Hash
def c_invert
Hash[to_a.reverse.map(&:reverse)]
end
end
关于Ruby 在 Ruby 中创建 Hash 自定义反转函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17764387/