filters = {
"start_year" => "2009",
"end_year" => "2011",
"theme" => "",
"discipline" => ""
}
filters.length
是4
,但我想2
獲取哈希的長度,不空值
filters = {
"start_year" => "2009",
"end_year" => "2011",
"theme" => "",
"discipline" => ""
}
filters.length
是4
,但我想2
獲取哈希的長度,不空值
解析json字符串。使用Enumerable#select
require 'json'
json_string = <<EOS
{
"filters": {
"start_year": "2009",
"end_year": "2011",
"theme": "",
"discipline": ""
}
}
EOS
h = JSON.parse(json_string)
和過濾值:
h['filters'].values.select { |x| x != "" }
# => ["2009", "2011"]
h['filters'].values.select { |x| x != "" }.size
# => 2
filters.values.reject(&:empty?).length
如果空值保存爲nil
,而不是''
你可以使用:
filters.values.compact.length
你的哈希看起來很奇怪 – Stefan 2014-09-24 13:24:24
它既不是有效的Ruby對象也不是有效的JSON對象。 – sawa 2014-09-24 13:25:37
什麼是「過濾器」? – sawa 2014-09-24 13:32:03