【发布时间】:2012-01-23 02:47:36
【问题描述】:
我在一个巨大的数组中有不同数量的数组。这是正确的方法吗?:
parentArray = [[array],[array2],....]
如何为每个连续数组创建一系列嵌套循环,从而在前一个数组中创建数组循环?
parentArray.each do |eacharray|
array.each do |eacharray1|
array2.each do |eacharray2|
array3.each do |eacharray3|
arrayN.each do ....
.....
.....
...
...
end
end
end
end
例子:
网络蜘蛛将访问包含链接的第一页,并将其存储为数组。蜘蛛访问第一页上的第一个链接,并在该级别发现更多链接,并将其存储为数组。蜘蛛不断前进,不断发现越来越多的链接,直到深入到最深的层次。
我最终得到:
rootArray = [arrayLinks, arrayLink2, arrayLinks3....]
执行.flatten 会破坏所有深度关系。
我需要的是一个递归(树?)例程,它将从第一个数组(AKA arrayLinks)开始执行递归嵌套循环,并在第一个数组中构建另一个循环,依此类推。
@Justice,基本上我有很多数组。第一个数组是“父”,然后下一个数组是“父”的每个值的子。如果有另一个数组,那么它将是前一个数组的每个值的子元素。
【问题讨论】:
-
一般来说,你想做什么?你为什么要创建和循环嵌套数组?
-
你想对每个级别做不同的事情还是对所有级别都做同样的事情?
-
JRL,每个级别都做同样的事情。比如输出数组值。
-
@Justice,基本上我有很多数组。第一个数组是“父”,然后下一个数组是“父”的每个值的子。如果有另一个数组,那么它将是前一个数组的每个值的子元素。
-
有一个解释的例子会有所帮助,显示每个数组的内容以及它们如何相互关联。听起来你对一棵树有某种奇怪的表示,但就你到目前为止所描述的而言,它听起来并不可行。假设它确实对你有用,一些实际的细节可能会阐明如何......
标签: ruby