gpt4 book ai didi

ruby - min_by Ruby(关联数组中的最小值)

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

我在模型类 User 中有以下内容:

  def thisUsersUserRole
userRoles = []
self.userRoles.each do |ur|
userRoles << { "id" => ur.role_id, "name" => ur.roleName }
end
#line in question
userRoles.values.min_by(&:first)
# puts userRoles
end

puts 显示以下内容:

{"id"=>1, "name"=>"admin"}
{"id"=>2, "name"=>"owner"}
{"id"=>3, "name"=>"manager"}

我正在尝试搜索数组(总共不超过 10 个,但根据我的研究,这是成本最低的方法)并返回最低 "的 "name" 属性值id" 散列/关联数组中的值。

如何使用 min_by 来完成此操作。 documentation没有任何意义...请帮助我理解语法,因为仅仅提供正确的行并不能帮助我学习。

最佳答案

鉴于现有代码和您对我评论的回复,我认为这就是您想要的:

role_hash_with_smallest_id = userRoles.min_by {|role_hash| role_hash['id']}
role_hash_with_smallest_id['name']

然而,可能有更简单的方法:

role_with_smallest_id = self.userRoles.min_by {|role| role.id}
role_with_smallest_id.name

可以简写为

role_with_smallest_id = self.userRoles.min_by(&:id)
role_with_smallest_id.name

这是假设 self.userRoles 已经是一个 Enumerable

关于ruby - min_by Ruby(关联数组中的最小值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030174/

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