1

Ruby クラス Hash には、キーと値の間で「反転」を行い、同じキーを削除する「invert」メソッドがあります (この場合は「1=>:a」)。h = {a: 1, b: 2, c: 1} => {:a=>1, :b=>2, :c=>1} h.invert => {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} 
4

2 に答える 2

3
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
于 2013-07-20T16:51:36.827 に答える