You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何组合打印Ruby中嵌套对象结构的数组哈希值并格式化输出

问题分析

原有代码的核心问题如下:

  • 嵌套了两层遍历哈希值的逻辑,每个卡片元素会被重复处理两次,导致输出内容重复
  • 每次遍历单条卡片数据就调用puts,会强制触发换行,且固定拼接/后缀会导致行末尾出现多余的分隔符
修正后代码
init_cards_j.each do |card_group|
  # 取当前哈希存储的卡片数组,按num字段排序
  sorted_cards = card_group.values.first.sort_by { |item| item[:num] }
  # 转换格式后拼接为整行输出
  output_line = sorted_cards.map { |item| "Card #{item[:num]}: #{item[:head]} head" }.join(' / ')
  puts output_line
end
逻辑说明
  • 直接遍历数组的每个哈希元素,无需通过索引取值,写法更简洁
  • 内置sort_by逻辑满足按num字段排序的需求
  • 先将同一组内的所有卡片转换为目标格式的字符串,再通过join方法用/拼接,自动避免行尾出现多余分隔符
  • 整行内容拼接完成后再调用puts,保证同一组的卡片输出在同一行

内容的提问来源于stack exchange,提问作者Rhona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:36:03