0Pricing
Ruby Academy · レッスン

ハッシュの反復処理

each、map、select です。

「ハッシュの反復処理」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。

eachで繰り返し処理する

eachメソッドはすべてのペアを順番に処理します。ブロックにはキーと値が渡されます。

scores = { math: 90, art: 80 }
scores.each do |subject, score|
  puts "#{subject}: #{score}"
end

each_pair

each_pairはハッシュにおけるeachの別名です。読みやすい方を使ってください。

h = { a: 1, b: 2 }
h.each_pair { |k, v| puts "#{k}=#{v}" }

キーだけを繰り返し処理する

値が必要ない場合は、each_keyでキーだけを繰り返し処理できます。

h = { name: "Ada", age: 36 }
h.each_key { |k| puts k }

値だけを繰り返し処理する

each_valueで値だけを直接繰り返し処理できます。

h = { a: 10, b: 20 }
total = 0
h.each_value { |v| total += v }
puts total

mapで変換する

ハッシュに対するmapは配列を返します。各ペアはキーと値としてブロックに渡されます。

prices = { pen: 2, book: 5 }
labels = prices.map { |item, p| "#{item}: $#{p}" }
puts labels.inspect

transform_values

transform_valuesは、キーを維持したまま各値を変更した新しいハッシュを返します。

prices = { pen: 2, book: 5 }
doubled = prices.transform_values { |p| p * 2 }
puts doubled

transform_keys

transform_keysは値を維持したままキーを変更します。文字列をシンボルに変換するときなどに便利です。

h = { "a" => 1, "b" => 2 }
puts h.transform_keys(&:to_sym)

selectで絞り込む

select(別名filter)は、ブロックがtrueになるペアだけを残し、新しいハッシュを返します。

scores = { a: 90, b: 50, c: 70 }
passing = scores.select { |k, v| v >= 70 }
puts passing

ペアを除外する

rejectはselectの反対です。ブロックがtrueになるペアを除外します。

scores = { a: 90, b: 50 }
puts scores.reject { |k, v| v < 60 }

検索とカウント

findは最初に一致したペアを配列として返します。ブロック付きのcountは、一致した数を数えます。

h = { a: 1, b: 2, c: 3 }
puts h.find { |k, v| v == 2 }.inspect
puts h.count { |k, v| v.odd? }

値を合計する

valuesとsumを組み合わせて合計を求めたり、each_with_objectを使って独自の集計を行ったりできます。

cart = { apple: 3, pear: 5 }
puts cart.values.sum

理解度チェック

ハッシュの繰り返し処理に関する知識を確認します。

まとめ

これで、ハッシュを繰り返し処理できるようになりました。

  • each、each_key、each_value
  • map、transform_values、transform_keys
  • 絞り込みに使うselectとreject
  • find、count、値の合計

次は、デフォルト値とマージです。

h = { a: 1, b: 2, c: 3 }
puts h.select { |k, v| v.odd? }

よくある質問

「ハッシュの反復処理」レッスンは無料ですか?

はい。「ハッシュの反復処理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。

「ハッシュの反復処理」で何を学びますか?

each、map、select です。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ruby Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「ハッシュの反復処理」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このRuby Academyレッスンでコードを書いて実行できますか?

はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. シンボルと文字列
  2. ハッシュの作成と読み取り
  3. ハッシュの反復処理
  4. デフォルト値とマージ
← Ruby Academyに戻る