4, "aaa" => 1, "bb-6ren">
gpt4 book ai didi

ruby - 使用 excel vlookup 等键值对将键数组连接到哈希

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:03 24 4
gpt4 key购买 nike

我有一个未排序的键数组,如下所示:

keys = ["ccc", "ddd", "ggg", "aaa", "bbb"]

和哈希

hash = {"ddd" => 4, "aaa" => 1, "bbb" => 2, "eee" => 5, "fff" => 6}

我想加入这两个数据结构,以将键的原始顺序返回到第一个键的散列:

{"ccc" => nil, "ddd" => 4, "ggg" => nil, "aaa" => 1, "bbb" => 2}

不在散列中的项目(如“ggg”)应该返回 nil。这类似于 excel 中的“v-lookup”函数。这是 ruby 。谢谢!

最佳答案

神秘的:

Hash[keys.zip(hash.values_at *keys)]

或者更长一点,不那么神秘:

keys.map.with_object({}) {|key, memo| memo[key] = hash[key]}

关于ruby - 使用 excel vlookup 等键值对将键数组连接到哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com