我正在寻找一种将一个数组移动到另一个数组并清空的方法。在此示例中:
a1 = [1,2]
a2 = [3,4]
我想将A2添加到A1,然后A2为空。我希望结果看起来像:
a1 # => [1, 2, 3, 4]
a2 # => []
阵列的大小可能会有所不同,因此我需要一些特定于push/pop/pop/shift/unshift的元素。也许我没有正确使用这些。我做了以下操作,但想知道是否有更好的方法:
a1.concat(a2)
a2.clear
a1 # => [1, 2, 3, 4]
a2 # => [3, 4]
a1.concat(a2.slice!(0..-1))
将为您提供一行想要的东西。slice!
方法将从一个数组中获取所有内容,并将其添加到另一个数组中。
a1 = [1,2]
a2 = [3,4]
a1.concat(a2.slice!(0..-1)) # => [1, 2, 3, 4]
a2 # => []
使用串联
使用数组# 将结果串联并分配给 a1 ,然后set a2 等于空数组。例如:
a1 = [1,2]
a2 = [3,4]
a1 += a2
a2 = []
a1
# => [1, 2, 3, 4]
a2
# => []
您可能会查看偏移或切片!方法。两者都将在删除阵列后返回一块数组。
如果您知道要移出数组正面的值数量,则可以使用:
a1.concat(a2.shift(2))
另外,如果要切除整个数组,则可以使用:
a1.concat(a2.slice!(0..-1))
0 ..- 1的范围是指通过最后一个元素的第一个元素。