【发布时间】:2020-10-03 21:45:21
【问题描述】:
我是 Ruby;我看到关于这个主题有各种各样的问题..但是找不到这样的问题,但我收集多维数组在 ruby 中不存在。所以我正在为一个虚构的数据集使用嵌套数组。是否可以引用嵌套数组中子元素的索引位置?我认为迭代并为每个数组创建一个块是最好的前进方式(并在 SO 上确认了这一点)。我在另一篇文章中看到建议使用 Narray 库...这适用于字符串吗?我的第一个目标是打印出每个名字和最后一个感兴趣的区域。我举了一个例子来说明我在这个例子中大致试图实现的目标.. 非常感谢
staff_array = [
["paulBarry",
["programming", "networking", "security", "open source" ,"frameworks"]],
["chrisMuedec",
["testing", "safety systems", "formal systems", "programming languages"]],
["nigelwhite",
["graphics", "imaging", "programming","sign languages","trees"]],
["austinKinsella",
["networks", "wans", "programming", "macintosh", "digital photography"]],
["gerryMoloney",
["placement", "employment", "emerging systems", "webdevelopment"]
]
]
staff.each do |name_array|
# Iterate through the parent array, returning each element sequentially
name_array.each do |interest_element|
# Iterate through each element of the child array returned by the above parent iteration
示例:
puts {#name_array}+ name_array.each do |interest_element|[-1]
end
end
预期的输出是:
Paulbarry: Frameworks
ChrisMuedec: Programming languages
Nigelwhite: Trees
AustinKinsella: Digital photography
GerryMoloney: Webdevelopment.
【问题讨论】:
-
您的预期输出是什么?您是否检查过 Hash 对于员工当前持有的数据类型是否是更好的数据结构?
-
您能否发布有效的 ruby 代码(运行时不会引发错误的代码)以及预期结果?
-
嗨塞巴斯蒂安,我对此相当陌生,因为我了解散列是针对键值对,即 1 个值到 1 个键...所以我每个键都有多个值,所以我忽略了它。嗨 Viktor,我会尽快更新,谢谢
-
puts {#name_array} + name_array.each do |interest_element|[-1]; end不符合您的预期。首先,#name_array会引发异常。如果你写,puts name_array + name_array.each do |interest_element|[-1]; end,Ruby 首先执行,name_array.each do |interest_element|[-1]; end。你会看到Array#each方法返回了它的接收者name_array,所以表达式变成了puts name_array + name_array。 -
欢迎来到 SO!请参阅“How to Ask”、“Stack Overflow question checklist”及其所有链接页面。语法在 SO 上很重要,所以请尽量写得好。我建议使用拼写和语法检查器。 SO 不是留言板或论坛,它更像是一本语法很重要的在线参考书。
标签: arrays ruby multidimensional-array indexing data-structures