Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。
Q&A
2回答
307閲覧
総合スコア117
0グッド
0クリップ
投稿2018/07/05 13:08
0
現在、以下のように記述しているメソッドがあります。 もう少し。4行や3行にまとめられないかなと思い、質問させていただきました。 何か簡単な書き方があれば教えてください。
よろしくお願いします。
Ruby1def getXXX 2 tmp = Hash.new 3 array.each do |arr| 4 tmp[arr['id']] = arr 5 end 6 return tmp 7end
Ruby
1def getXXX 2 tmp = Hash.new 3 array.each do |arr| 4 tmp[arr['id']] = arr 5 end 6 return tmp 7end
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
オブジェクトに継ぎ足していくパターンは、each_with_objectを使います。
each_with_object
Ruby1def getXXX 2 array.each_with_object({}){|arr,o| o[arr['id']] = arr} 3end
1def getXXX 2 array.each_with_object({}){|arr,o| o[arr['id']] = arr} 3end
投稿2018/07/05 14:56
総合スコア86457
Array#to_hで、「キーと値のペアが続く配列」を、Hash.[]では「キー、値、キー、値、…のように偶数個続く配列」をHashに変換できます。
Array#to_h
Hash.[]
Hash
ruby1def getXXX 2 array.map { |item| [item['id'], item] }.to_h 3end
ruby
1def getXXX 2 array.map { |item| [item['id'], item] }.to_h 3end
投稿2018/07/05 13:14
総合スコア146819
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
Rubyの基礎 : hash と each文 に関して
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。