我正在尝试从数组中提取所有元素,如:[[42,43,46],[23,64],[2,[2,3]]]。我认为递归方法方法可行,但递归对我来说是一个相对较新的概念。递归是最好的解决方案还是有更好的方法?我能够用这种方法提取数组中第一个最深的项目:
def list_items(array)
return array if array.is_a? Integer
array = array.shift
list_items(array)
end
set = [[42,43,46],[23,64],[2,[2,3]]]
result = list_items(set)
p result
答案 0 :(得分:1)
使用#flatten
方法。
返回一个新的数组,该数组是self的一维展平(递归)。
set = [[42,43,46],[23,64],[2,[2,3]]]
set.flatten # => [42, 43, 46, 23, 64, 2, 2, 3]