"1", "name"=>"Alan"}, {"id"=>"2", "name"=>"Ben"}, {"id"=>"3", "name"=>"Carl"-6ren">
gpt4 book ai didi

ruby-on-rails - 在 Ruby 中搜索数组的更好方法?

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

我有一个哈希数组:

arr = [{"id"=>"1", "name"=>"Alan"}, {"id"=>"2", "name"=>"Ben"}, {"id"=>"3", "name"=>"Carl"}, {"id"=>"4", "name"=>"Danny"}, {"id"=>"5", "name"=>"Eva"}]

如果我要找到 id #4 的名字:

arr.find{ |a| a["id"] == "4" }["name"]

返回“Danny”,这是我想要的。

我的问题是,是否有更短、更优雅的方式来完成相同的搜索?

最佳答案

如果您只需要查找一个 id,那么线性搜索就可以了。

如果您在同一个数组上进行多次查找,请从该数组创建一个散列,因此单个查找的复杂度为 O(1)

h =  Hash[arr.map{|a|[a["id"], a["name"]]}]
h["4"]

关于ruby-on-rails - 在 Ruby 中搜索数组的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039534/

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