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

如何将Ruby中的二维数组转换为按年月分组的哈希

实现方案

你需要的功能用Ruby内置方法即可极简实现,核心依赖两个能力:

  • DateTime#strftime 可直接格式化出「年份-英文全月份名」的分组键
  • 可枚举对象的group_by方法可直接按自定义规则分组,直接返回目标哈希结构

完整代码示例

# 引入Ruby标准库的日期处理模块
require 'date'

# 你的原始二维数组
original_arr = [
  ["2021-07-26T11:38:42.000+09:00", 1127167],
  ["2021-08-26T11:38:42.000+09:00", 1127170],
  ["2021-09-26T11:38:42.000+09:00", 1127161],
  ["2021-07-25T11:38:42.000+09:00", 1127177],
  ["2021-08-27T11:38:42.000+09:00", 1127104]
]

# 核心分组逻辑仅需一行
grouped_result = original_arr.group_by { |sub_item| DateTime.parse(sub_item[0]).strftime("%Y-%B") }

输出验证

你可以用pp方法打印验证结果,输出结构和你要求的完全一致,仅你示例中手动截断的数值会保留原始完整值:

require 'pp'
pp grouped_result

# 输出结果:
# {
#   "2021-July" => [["2021-07-26T11:38:42.000+09:00", 1127167], ["2021-07-25T11:38:42.000+09:00", 1127177]],
#   "2021-August" => [["2021-08-26T11:38:42.000+09:00", 1127170], ["2021-08-27T11:38:42.000+09:00", 1127104]],
#   "2021-September" => [["2021-09-26T11:38:42.000+09:00", 1127161]]
# }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:48:03