【问题标题】:Ruby on Rails ActiveSupport or plain Ruby way of merging arrays into a hashRuby on Rails ActiveSupport 或将数组合并为哈希的普通 Ruby 方式
【发布时间】:2010-04-19 01:34:44
【问题描述】:

什么是使用 ActiveSupport 或者可能是常规的 Ruby 内置功能来获取两个数组并将它们合并到一个哈希中的聪明方法,其中数组中的每个元素都与并行数组中的元素匹配?想象两个数组:

names = ["Danny", "Johnny"]
ages = ["25", "32"]

最终结果应该是一个看起来像这样的哈希:

{"Danny" => "25", "Johnny" => "32"}

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    如果您使用的是 ruby​​ 1.8.7 或更高版本:

    Hash[names.zip ages]
    

    或对于 1.8.6:

    Hash[*names.zip(ages).flatten]
    

    【讨论】:

    • 使用 .flatten 在任一数组还包含其他数组的情况下会导致问题。在这种特定情况下,它会很好,但重要的是要记住
    • 好点,如果数组中可能包含其他数组,请将.flatten 替换为.sum
    猜你喜欢
    • 2021-05-08
    • 2014-04-30
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 2011-11-19
    • 1970-01-01
    • 2017-10-19
    相关资源
    最近更新 更多