簡體   English   中英

如何將一個數組移到另一個數組中,而將第一個數組留空?

[英]How do you move an array into another and leave the first one empty?

我正在尋找一種將一個數組移到另一個數組並將其清空的方法。 在此示例中:

a1 = [1,2]
a2 = [3,4]

我想將a2添加到a1,然后將a2添加為空。 我希望結果看起來像:

a1 # => [1, 2, 3, 4]
a2 # => []

數組的大小可以變化,所以我需要一些不特定於某個元素的東西,例如push / pop / shift / unshift。 也許我沒有正確使用這些。 我做了以下工作,但想知道是否有更好的方法:

a1.concat(a2)
a2.clear
a1 # => [1, 2, 3, 4]
a2 # => [3, 4]
a1.concat(a2.slice!(0..-1))

一站式給您您想要的東西。 slice! 方法將從一個數組中獲取所有內容,並將concat添加到另一個數組中。

a1 = [1,2]
a2 = [3,4]
a1.concat(a2.slice!(0..-1)) # => [1, 2, 3, 4] 
a2 # => [] 

使用串聯

使用Array#+連接數組並將結果分配給a1 ,然后將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的范圍是指第一個元素到最后一個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM