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

Ruby中按索引配对两个数组并分组生成指定哈希的简洁写法

Ruby 实现目标哈希的简洁写法

有多种比手动循环索引更简洁的实现,以下是最常用的两种Ruby惯用写法:

写法1(兼容性最好,推荐优先使用)

用zip拼接两个数组后直接分组转换,一行代码即可得到结果:

arr1 = [1, 2, 3, 4]
arr2 = ['a', 'b', 'a', 'c']

result = arr2.zip(arr1).group_by(&:first).transform_values { |items| items.map(&:last) }

运行后直接输出{"a"=>[1, 3], "b"=>[2], "c"=>[4]},完全符合你的需求。

写法2(Ruby 2.7+版本支持,逻辑更直观)

直接用带块的to_h配合遍历实现:

result = arr2.zip(arr1).each_with_object(Hash.new { |h,k| h[k] = [] }) do |(key, val), hash|
  hash[key] << val
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:15:02