如何从嵌套数组中删除外部数组?

时间:2014-01-17 02:41:12

标签: ruby

如果我有以下arr = [13,12,31,31]现在说我想推送另一组数字,例如12,13,54,32

所以我可以arr << [12,13,54,32],但现在我有[13,12,31,31,[12,13,54,32]]

那么如何删除外部阵列? arr = arr.pop 有时,但我猜测存在更好的方法。请指教。

3 个答案:

答案 0 :(得分:7)

请勿使用<<,请使用+

arr = [13,12,31,31]

arr +=  [12,13,54,32]

# arr => [13,12,31,31,12,13,54,32]

答案 1 :(得分:5)

您应该使用Array#flatten

[[13,12,31,31,12,13,54,32]].flatten # => [13, 12, 31, 31, 12, 13, 54, 32]

答案 2 :(得分:2)

你有几个选择。您可以使用+运算符加入数组,而不必处理外部数组。如果你有一个外部数组并想要展平它,只需在数组上调用flatten即可。正如上面评论中提到的matt,您也可以使用concat

# Creates a new array
[13,12,31,31] + [12,13,54,32]
=> [13, 12, 31, 31, 12, 13, 54, 32]

# Creates a new array, unless you use flatten!
[13, 12, 31, 31, [12, 13, 54, 32]].flatten
=> [13, 12, 31, 31, 12, 13, 54, 32]

# Modifies the original array
[13,12,31,31].concat([12,13,54,32])
=> [13, 12, 31, 31, 12, 13, 54, 32]