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

Ruby中如何从两个数组按索引对应生成哈希的键值对

Ruby中将两个数组合并为索引对应哈希的内置方法

有现成的原生实现,不需要手动遍历索引赋值,最常用的实现方式如下:

基础用法示例

首先定义两个测试数组:

keys = [:name, :age, :gender]
values = ["张三", 25, "男"]

写法1(兼容全Ruby版本)

使用Hash[]构造方法搭配Array#zip:

result_hash = Hash[keys.zip(values)]
# 输出结果:{:name=>"张三", :age=>25, :gender=>"男"}

写法2(Ruby 2.1+ 更简洁)

直接调用to_h方法完成转换:

result_hash = keys.zip(values).to_h

注意事项

  • 若两个数组长度不一致,会以第一个数组的长度为准:第一个数组长出的索引位置对应的值为nil,第二个数组长出的元素会直接被丢弃
  • 若作为键的数组存在重复元素,靠后的索引对应的值会覆盖前面的值,符合哈希键唯一的特性

示例(长度不一致场景):

keys = [:a, :b, :c, :d]
values = [1, 2]
p keys.zip(values).to_h # => {:a=>1, :b=>2, :c=>nil, :d=>nil}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:24:02