ruby-on-rails - 如何在哈希数组中搜索哈希键值
问题描述
我有一个哈希数组:
array = [
{:name => "Bob" , :age => 27 , :place => "A"} ,
{:name => "John" , :age => 50 , :place => "B"} ,
{:name => "Alex" , :age => 80 , :place => "C"}
]
我想获得:place
if的值:name == "John"
。
但是,如果我使用
array.find {|x| x[:name] == "John"}
我明白了
{:name=>"John", :age=>"27", :place=>A}
我可以用
array.second[:place]
这将返回B
,但该数组将包含三个以上的 Hash 元素。
如何在另一个键值的条件下返回正确的位置?
解决方案
如果需要一个方法调用,他们可能会欺骗find
更早的返回。
array.find { |h| break h[:place] if h[:name] == 'John' }
#⇒ "B"
推荐阅读
- ruby-on-rails - 如何在没有测试用例的情况下升级 Rails
- c - 使用 goto 返回不同输出的代码
- php - php将数组自定义为给定的特定格式
- php - 访问包含值的 foreach 数组时出现问题
- freeradius - freeradius 中的策略未运行
- ionic-framework - 找不到模块'@ionic-native/power-management/ngx'
- asp.net - 抓取:带有 cURL 的 SSL_ERROR_SYSCALL。适用于 Chrome/Firefox
- javascript - 在 React.js 中为内联 CSS 使用外部字体
- c# - 如何使用带有“webmethod”端点的全局过滤器?
- android - Git 存储库突然不再更新,即使它在 Android Studio 端提交/推送正常