【发布时间】:2010-12-20 13:35:39
【问题描述】:
somearray = ["some", "thing"]
anotherarray = ["another", "thing"]
somearray.push(anotherarray.flatten!)
我期待
["some","thing","another","thing"]
【问题讨论】:
-
值得一说(不是给你悲伤,而是因为它会一次又一次地咬你)你的期望是这里的问题。 Ruby 数组(与 Perl 中的 say 数组不同)不会在这样的上下文中自动展平。这不是错误:这是一项功能。
-
ri Array@flatten!为什么这个问题得到这么多票?该文档是明确的Array#flatten!将自我展平到位。如果未进行任何修改(即数组不包含子数组),则返回 nil。 -
如果问题对用户有用,就会获得支持。最简单的问题获得最多的支持,因为它们对大多数人有用。
-
@yeyo,你不觉得flatten操作是免费的吗?
-
@Konstantin op 不是在寻找替代品或谈论性能问题,op 期待的是他或她没有得到的结果,因为
flatten!不是那样工作的。最后,这个问题反映了一个逻辑问题,而不是一个优化问题。有关更多信息,请参阅下面的 pilcrow 的答案。
标签: ruby arrays multidimensional-array