0Pricing
Ruby Academy · 课时

遍历哈希

each、map、select

遍历哈希 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 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 的别名。请选择更易读的写法。

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 会返回一个新哈希,其中每个值都已更改,而键保持不变。

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

转换键

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? }

常见问题解答

「遍历哈希」课时是免费的吗?

是的 — 「遍历哈希」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。

「遍历哈希」这节课中我会学到什么?

each、map、select 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ruby Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「遍历哈希」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ruby Academy 课中编写并运行代码吗?

能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 符号与字符串
  2. 创建与读取哈希
  3. 遍历哈希
  4. 默认值与合并
← 返回 Ruby Academy