2

私は配列を持っています:

arr = ["a", "b", "c"]

私がやりたいのは、次のようにハッシュを作成することです。

{1 => "a", 2 => "b", 3 => c}

私はそれをやろうとしました:

Hash[arr.each_with_index.map { |item, i|  [i => item] }]

しかし、私が探していたものが得られませんでした。

4

3 に答える 3

3

each_with_index元の受信者を返します。元の受信機とは異なる何かを得るためには、mapとにかく必要です。eachしたがって、またはを使用して追加の手順を実行する必要はありませんeach_with_index。また、with_indexオプションで初期インデックスを取得します。

Hash[arr.map.with_index(1){|item, i| [i, item]}]
# => {1 => "a", 2 => "b", 3 => c}
于 2013-07-17T08:36:33.217 に答える