【发布时间】:2014-03-28 15:12:17
【问题描述】:
我有一个哈希数组,如下所示。假设我的数组是@fruits_list:
[
{:key_1=>15, :key_2=>"Apple"},
{:key_1=>16, :key_2 =>"Orange"},
{:key_1=>17, :key_2 =>" "}
]
我想使用 '|' 加入散列中的值;但我的最终输出不应包含 nil 值。我使用以下方式连接它:
@fruits_list.collect { |hsh| hsh[:key_2] }.join("|")
但这会在我的输出中添加 nil,所以我的最终输出有 3 个项目 {"Apple" | “橙色” | “”}。我想要列表中的 2 项,并想消除 nil 值,所以我的最终输出应该看起来像 {"Apple" | “橙色”}。
我试过了:@fruits_list.collect { |hsh| hsh[:key_2] unless hsh[:key_2].nil? }.join("|"),但即便如此,最终输出中也会返回 3 个项目。我做错了什么或如何消除 nil 值?
【问题讨论】:
-
那不是
nil值,它是space -
除非 hsh[:key_2].blank?会做你想做的。正如 Bala 所说, nil 行不通
标签: ruby-on-rails ruby collect