从包含深度为 Ruby 的数组的数组中提取项目

Extract items from an array containing arrays with n-depth in Ruby

我正在尝试从这样的数组中提取所有元素:[[42, 43, 46], [23,64], [2, [2,3]]]。我认为递归方法可行,但在 Ruby 中递归对我来说是一个相对较新的概念。递归是最好的解决方案还是有更好的方法?我能够使用此方法提取数组中第一个最深的项目:

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

使用#flatten方法。

Returns a new array that is a one-dimensional flattening of self (recursively).

set = [[42,43,46],[23,64],[2,[2,3]]]
set.flatten # => [42, 43, 46, 23, 64, 2, 2, 3]