有没有方法可以判断散列中散列是否是嵌套散列?确定散列是否是红宝石中的嵌套散列
例如
a = { a: 1, b: 2, c: 2 }
应该返回false
a = { a: {a1: 1, a2: 2}, b: {b1: 1}, c: 2 }
应返回true
有没有方法可以判断散列中散列是否是嵌套散列?确定散列是否是红宝石中的嵌套散列
例如
a = { a: 1, b: 2, c: 2 }
应该返回false
a = { a: {a1: 1, a2: 2}, b: {b1: 1}, c: 2 }
应返回true
a.any? { |_, v| v.is_a?(Hash) }
您可以通过遍历您的哈希值与Hash#values
方法检查:
a.values.any? { |v| v.is_a?(Hash) }
应该是不可能的,但这样做可以很好地使用[Hash#each_value](http://ruby-doc.org/core-1.8.7/Hash.html#method-i-each_value )来避免创建临时数组。 –
如果'h = {:a => [{:b = 3}]}'? –
嗯这是我没有考虑过的边缘情况。对于我的问题,尽管 –