[英]In Ruby how do you sort one multi dimendional array by another multi dimensional array?
[英]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.