我有一个 Rails 嵌套哈希,如下所示:
class = [{"tutor" => {"id" => "Me"}}, {"tutor" => {}}]
我想提取 id 列表,但嵌套哈希可以为零:
tutor_ids = class.map {|c| c['tutor']['id'].to_i }
如果嵌套散列为零,我会得到错误。
我该怎么做?
我有一个 Rails 嵌套哈希,如下所示:
class = [{"tutor" => {"id" => "Me"}}, {"tutor" => {}}]
我想提取 id 列表,但嵌套哈希可以为零:
tutor_ids = class.map {|c| c['tutor']['id'].to_i }
如果嵌套散列为零,我会得到错误。
我该怎么做?
首先,我认为您可能正在考虑这样的哈希数组(假设多次使用相同的键:
klass = [{"tutor" => {"id" => "Me"}},{"tutor" => {}}]
然后您可以将导师 ID 映射为:
tutor_ids = klass.map {|k| k['tutor'] && k['tutor']['id'] }.compact
这将导致
=> ["Me"]
Compact 将丢弃之后遇到的所有 nil 值。
id = class['tutor'] ? class['tutor']['id'] : nil