Я работаю из this exercise в codewars, который должен выравниваться массивом (до одного уровня глубокого), так что, например, я хочу, чтобы получить выходы:Одношагового уплощение массива в рубине
[1,2,3] >> [1,2,3]
[[1,2],3] >> [1,2,3]
[[1,[2]],3] >> [1,[2],3]
я решил использовать «впрыснуть» - где на следующий элемент будет добавлен к нарастающему итогу, если этот элемент является массивом, или просто толкнул, если это не так:
def flatten(array)
array.inject([]) {|result,element| element.kind_of?(Array) result.concat(element) : result<<element}
end
Может кто-нибудь объяснить, почему я получаю следующая синтаксическая ошибка?
-e:3: syntax error, unexpected tIDENTIFIER, expecting '}'
... element.kind_of?(Array) result.concat(element) : result<
Также только добавить, я не используя встроенный метод сплющивания, потому что он слишком глубок: [[[3], [4], [5]], [9], [9], [8], [[1,2,3] ]]), [[3], [4], [5], 9,9,8, [1,2,3]] – user25959
Ваша ссылка требует подписки, не могли бы вы разместить exe rcise? – Stefan