ハッシュの反復処理
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}"
endeach_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 totalmapで変換する
ハッシュに対するmapは配列を返します。各ペアはキーと値としてブロックに渡されます。
prices = { pen: 2, book: 5 }
labels = prices.map { |item, p| "#{item}: $#{p}" }
puts labels.inspecttransform_values
transform_valuesは、キーを維持したまま各値を変更した新しいハッシュを返します。
prices = { pen: 2, book: 5 }
doubled = prices.transform_values { |p| p * 2 }
puts doubledtransform_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_valuemap、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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- シンボルと文字列
- ハッシュの作成と読み取り
- ハッシュの反復処理
- デフォルト値とマージ