【发布时间】:2014-10-20 09:35:27
【问题描述】:
我在 Ruby 程序中有以下嵌套哈希。如何编写一个for 循环,最终打印出每个数组中包含的元素?
alternatives = {
"JAVA" => {
"/usr/bin" => [
"java", "keytool", "orbd", "pack200", "rmid",
"rmiregistry", "servertool", "tnameserv", "unpack200"
],
"/usr/lib" => [
"jre", "jre_exports"
],
"/usr/share" => [
"java.1", "keytool.1", "orbd.1", "pack200.1", "rmid.1",
"rmiregistry.1", "servertool.1", "tnameserv.1", "unpack200.1"
]
},
"JDK" => {
"/usr/bin" => [
"javac", "appletviewer", "apt",
"extcheck", "jar", "jarsigner", "javadoc", "javah", "javap",
"jconsole", "jdb", "jhat", "jinfo", "jmap", "jps",
"jrunscript", "jstack", "jstat", "jstatd", "native2ascii",
"policytool", "rmic", "schemagen", "servialver", "wsgen",
"wsimport", "xjc"
],
"/usr/lib" => [
"java_sdk", "java_sdk_exports"
],
"/usr/share/man/man1" => [
"javac.1", "appletviewer.1", "apt.1",
"extcheck.1", "jar.1", "jarsigner.1", "javadoc.1", "javah.1",
"javap.1", "jconsole.1", "jdb.1", "jhat.1", "jinfo.1", "jmap.1",
"jps.1", "jrunscript.1", "jstack.1", "jstat.1", "jstatd.1",
"native2ascii.1", "policytool.1", "rmic.1", "schemagen.1",
"servialver.1", "wsgen.1", "wsimport.1", "xjc"
]
}
}
这是我正在尝试做的伪代码
alternatives.each do |first_level_keys| # Gets the JAVA, JDK keys
first_level_keys.each do |second_level_keys| # Gets the /usr/... keys
second_level_keys.each do |array|
array.each do |elem|
puts "elem: " + elem
end
end
end
end
我看到“Accessing elements of nested hashes in ruby”,但似乎无法理解。
【问题讨论】:
-
不要说“例如这个”之类的东西,而是将一些更明确的东西作为锚文本,让人们知道他们将要做什么。请参阅“6.1 Link text”和“Don't use 'click here' as link text”。
标签: ruby