我有一个将整数映射到数组的哈希。例如
{1 => ["abc"], 2 => ["ccc", "ddd"]}
我如何遍历哈希值,直到找到一个值只有数组大小为1的条目?通常我可以做
arr.detect{|element| element.size == 1}
但这只适用于数组。我不确定如何将类似的逻辑应用于哈希。
答案 0 :(得分:2)
同样的原则适用:
h = {1 => ["abc"], 2 => ["ccc", "ddd"]}
h.find do |_, l|
l.size == 1
end
# => [ 1, ["abc"]]
现在,如果你正在寻找一个更有用的变量集:
key, value = h.find do |_, l|
l.size == 1
end
# => [ 1, ["abc"]]
key
# => 1
value
# => ["abc"]
如果你只关心价值观,那就更容易了:
list = h.values.find do |l|
l.size == 1
end