Eri*_*oss 1 ruby ruby-on-rails
我有一个接受哈希的方法,我有一个键数组(按优先级排序),我想检查哈希值,并返回找到的第一个匹配键的值blank?.到目前为止,我有以下几点,但由于我大量使用这种方法,我想知道是否有更有效的方法来实现它?
result = [:title, :name, :identifier, :slug].each do |key|
if my_hash[key].present?
return my_hash[key]
break
end
end
Run Code Online (Sandbox Code Playgroud)
所以给出以下哈希:
{
id: 10,
title: "",
name: "Foo",
slug: "foo"
}
Run Code Online (Sandbox Code Playgroud)
我希望result是:"Foo"
从效率的角度来看,你的方式可能接近最佳状态.但如果你想让它更优雅,保持效率,那么:
my_hash[%i[title name identifier slug].find{|key| my_hash[key].present?}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |