【发布时间】:2017-08-10 01:31:01
【问题描述】:
我有一个接受散列的方法,并且我有一个键数组(按偏好排序),我想检查散列并返回找到的第一个匹配键的值,它不是blank?。到目前为止,我有以下内容,但由于我大量使用这种方法,我想知道是否有更有效的方法来解决它?
result = [:title, :name, :identifier, :slug].each do |key|
if my_hash[key].present?
return my_hash[key]
break
end
end
所以给出以下哈希:
{
id: 10,
title: "",
name: "Foo",
slug: "foo"
}
我希望result 是:“Foo”
【问题讨论】:
-
你写道你想要一个键/值对,但你的代码只返回值。你真正想要哪个?
-
为清楚起见进行了编辑-我想要在给定键的有序列表的情况下找到的第一个键的值。散列可能有部分或全部键,有时散列可能有键,但没有值(或者更确切地说不是
truthy值) -
沿着你的代码行,你也可以做
break my_hash[key]。
标签: ruby-on-rails ruby