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

如何用一行代码将键数组与二维数组合并为目标哈希结构?

Ruby 一行代码实现键数组与二维数组的哈希映射

嘿,这问题其实用Ruby的数组方法组合就能轻松搞定一行代码的解决方案,先直接给你正确的代码:

array1.zip(array2.transpose).to_h

为什么这行代码能 work?

咱们拆解一下步骤:

  • array2.transpose:把你的二维数组array2进行转置操作,原来的每行元素会变成列。转置后array2就变成了:
    [[14646.75, 69454.63, 24989.53, 74455.69, 140448.19, 12309.34], [nil, nil, nil, nil, nil, nil]]
    
    这正好对应了你期望哈希里两个键对应的数值数组。
  • array1.zip(...):把array1里的每个键和转置后的array2里的每个子数组一一配对,得到一个包含键值对数组的数组:
    [[:lien_amount, [14646.75, ...]], [:contact_number, [nil, ...]]]
    
  • .to_h:最后把这个数组直接转换成哈希,完美得到你想要的结果。

为什么你之前的尝试不对?

你用的array2.flat_map {|a| a.zip(array1)}会把每个子数组的元素分别和键配对,比如第一个子数组[14646.75, nil]会被处理成[[14646.75, :lien_amount], [nil, :contact_number]],然后flat_map把所有这些小数组平铺成一个大数组,得到的是零散的键值对,而不是按键分组的结构,自然不符合预期啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:26:01