gpt4 book ai didi

将 Enumerable 转换为 Hash 的 Ruby 库函数

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:14 25 4
gpt4 key购买 nike

考虑对 Enumerable 的扩展:

module Enumerable

def hash_on
h = {}
each do |e|
h[yield(e)] = e
end
h
end

end

它是这样使用的:

people = [
{:name=>'fred', :age=>32},
{:name=>'barney', :age=>42},
]
people_hash = people.hash_on { |person| person[:name] }
p people_hash['fred'] # => {:age=>32, :name=>"fred"}
p people_hash['barney'] # => {:age=>42, :name=>"barney"}

是否有内置函数已经执行此操作,或者是否足够接近不需要此扩展?

最佳答案

Enumerable.to_h将一系列 [key, value] 转换为 Hash,这样您就可以:

people.map {|p| [p[:name], p]}.to_h

如果您有多个值映射到同一个键,则保留最后一个。

关于将 Enumerable 转换为 Hash 的 Ruby 库函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4807670/

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