我在运行此代码时遇到问题 它假设返回这个数组的扁平版本 请帮忙
def flatten(array)
array.each do |i|
if i.is_a? Array
flatten(i)
else
@@new_array << i
end
end
return @@new_array
end
flatten([1,2,3,[4,5,[6]]])
答案 0 :(得分:1)
问题在于您尝试将@@new_array
用作一种全局变量,但您从未初始化它。使用当前代码,为了使方法起作用,每次调用方法之前都需要重置@@new_array
:
@@new_array = []
flatten([1,2,3,[4,5,[6]]]) # => [1, 2, 3, 4, 5, 6]
然而,这个实施在很多层面都是可怕的(请不要冒犯)。如果您尝试自己实施Array#flatten
方法,我会建议the implementation来自几天前提出同样问题的问题。
答案 1 :(得分:0)
您是否尝试过阵列扁平化方法?
[1,2,3,[4,5,[6]]].flatten
或者您需要实现自己的方法