gpt4 book ai didi

ruby - 将方法应用于数组并将数组值作为键返回

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

我想知道 ruby​​ 是否有内置方法来执行以下操作。

来自这个数组:

array = [:foo, :bar]

和这个方法:

def content_for_key key
return :baz if key == :foo
return :qux if key == :bar
end

这个电话:

array.some_built_in_ruby_method(&:content_for_key)

我们得到:

{
:foo => :baz,
:bar => :qux,
}

最佳答案

你可以使用 map将每个元素转换为 [key, value] 对:

array.map { |key| [key, content_for_key(key)] }
#=> [[:foo, :baz], [:bar, :qux]]

其次是 to_h将嵌套数组转换为散列:

array.map { |key| [key, content_for_key(key)] }.to_h
#=> {:foo=>:baz, :bar=>:qux}

或者您可以使用 each_with_object在遍历数组时填充散列:

array.each_with_object({}) { |key, hash| hash[key] = content_for_key(key) }
#=> {:foo=>:baz, :bar=>:qux}

关于ruby - 将方法应用于数组并将数组值作为键返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852178/

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