ruby—遍历包含键/数组值对的哈希,并遍历每个值
我有一个如下所示的散列:ruby—遍历包含键/数组值对的哈希,并遍历每个值,ruby,Ruby,我有一个如下所示的散列: { "key1": [ "value1", "value2", "value3" ], "key2": [ "value1", "value2", "value3", "value4", "value5" ], "key3": [ "value1" ], "key4": [ "value1", "value2" ] } hash
{
"key1": [
"value1",
"value2",
"value3"
],
"key2": [
"value1",
"value2",
"value3",
"value4",
"value5"
],
"key3": [
"value1"
],
"key4": [
"value1",
"value2"
]
}
hash.each do |key, array|
array.each do |value|
# do something
end
end
如何迭代每个键,同时循环遍历该键中的所有值
如果有帮助的话,我有一个包含所有键的数组
谢谢非常简单,真的:
hash.each do |name, values|
values.each do |value|
# ...
end
end
您可以使用最低级别的
name
和value
执行任何您想要的操作。您可以这样做:
{
"key1": [
"value1",
"value2",
"value3"
],
"key2": [
"value1",
"value2",
"value3",
"value4",
"value5"
],
"key3": [
"value1"
],
"key4": [
"value1",
"value2"
]
}
hash.each do |key, array|
array.each do |value|
# do something
end
end
如果您确定数组的大小,只需这样做
ha = {:a => [1,2]}
ha.each do |k, (v1, v2)|
p k
p v1
p v2
end
Output
:a
1
2
可能的复制品确实很简单——是以错误的方式看待它的。谢谢,一旦你掌握了窍门,你会发现这种模式适用于各种情况
。每个
都是大多数Ruby应用程序的主干。像keyN
这样的名称应该是keyN
,以遵循Ruby惯例。大写字母有着重要的意义,特别是当涉及到常量名称
和类名
@tadman时,谢谢你指出这一点。我已经更新了我的答案。通常在变量名中完全避免使用大写字母,这只是混淆了事情。不是so
,而是do
。