Arrays ruby中数组的一步平坦化

Arrays ruby中数组的一步平坦化,arrays,ruby,Arrays,Ruby,我在codewars中工作,这是将阵列展平(达到一级深度),因此,例如,我希望获得输出: [1,2,3] >> [1,2,3] [[1,2],3] >> [1,2,3] [[1,[2]],3] >> [1,[2],3] 我决定使用“inject”——如果下一个元素是数组,则将其添加到运行总数中,如果不是数组,则直接推送: def flatten(array) array.inject([]) {|result,element| element.kin

我在codewars中工作,这是将阵列展平(达到一级深度),因此,例如,我希望获得输出:

[1,2,3] >> [1,2,3]

[[1,2],3] >> [1,2,3]

[[1,[2]],3] >> [1,[2],3]
我决定使用“inject”——如果下一个元素是数组,则将其添加到运行总数中,如果不是数组,则直接推送:

def flatten(array)
  array.inject([]) {|result,element| element.kind_of?(Array) result.concat(element) : result<<element}
end
def展平(阵列)

array.inject([]){| result,element | element.kind_?(array)result.concat(element):result您得到一个错误,原因是您在三元语句中遗漏了一个

element.kind_of?(Array) ? result.concat(element) : result<<element

您得到一个错误,因为您在三元语句中遗漏了一个

element.kind_of?(Array) ? result.concat(element) : result<<element

另外,我没有使用内置的展平方法,因为它太深了:[[3]、[4]、[5]、[9]、[9]、[8]、[1,2,3]]、[3]、[4]、[5]、[9,9,8]、[1,2,3]]你的链接需要登录,你能发布这个练习吗?另外,我没有使用内置的展平方法,因为它太深了:[[3]、[4]、[5]、[9]、[9]、[8]、[1,2,3]、[4]、[3]、[3]、[4]、[4]、[3]、[4]、[3]、[4]、[3]、[3]、[3]、[4]、[4]、[4]、[4]、[4,[5],9,9,8,[1,2,3]]你的链接需要登录,你能发布练习吗?谢谢你提供的两条信息!@user25959如果这个答案对你有效,请确保将答案标记为正确。是的,绝对正确。Stackoverflow让我等待了10多分钟,所以我返回了它。谢谢你提供的两条信息!@user25959如果这个答案有效,请确保将答案标记为正确是的,绝对是。Stackoverflow让我等了10多分钟,所以我又回来了。
array.flatten(1)
[[1,2],3].flatten(1)
=> [1, 2, 3]
[[1,[2]],3].flatten(1)
=> [1, [2], 3]