Я хочу, чтобы моя функция возвращала самый длинный массив во вложенном массиве (включая сам массив), поэтому
nested_ary = [[1,2],[[1,2,[[1,2,3,4,[5],6,7,11]]]],[1,[2]]
deep_max(nested_ary)
=> [1,2,3,4,[5],6,7,11]
simple_ary = [1,2,3,4,5]
deep_max(simple_ary)
=> returns: [1,2,3,4,5]
Я создал функцию для сбора всех массивов. Я должен получить максимальное значение в другой функции.
мой код:
def deep_max(ary)
ary.inject([ary]) { |memo, elem|
if elem.is_a?(Array)
memo.concat(deep_max(elem))
else
memo
end }
end
Это дает мне то, что я хочу:
deep_max(nested_ary).max_by{ |elem| elem.size }
Есть ли способ получить этот максимум внутри функции?