簡體   English   中英

如何將一個數組切成不同大小的數組並將它們組合在一起?

[英]How do I slice an array into arrays of different sizes and combine them?

我想要像下面的偽代碼一樣簡單的東西:

ar = [4,5,6,7,8,9]
last = ar.length-1
s = ar[0, 1..3, last] #fake code
puts s

預期輸出沒有8:4、5、6、7、9

錯誤:

bs/test.rb:12:in `[]': wrong number of arguments (3 for 2) (ArgumentError)

我知道它只能接受兩個參數。 有什么簡單的方法可以得到我需要的東西嗎?

差不多了,只是使用了錯誤的方法,應該使用Array#values_at而不是Array#[]

ar.values_at(0, 1..3, -1)
# => [4, 5, 6, 7, 9]

還要注意,在Ruby中,索引“環繞”,因此-1始終是最后一個元素, -2是倒數第二個,依此類推。

您也可以通過這種方式-

ar = [4,5,6,7,8,9]
arr = []
arr << ar[0..0]   #arr[0] will return a single value but ar[0..0] will return it in array.
arr << ar[1..3]
arr << ar[-1..-1]

在打印arr ,它將給出以下輸出-

[[4], [5, 6, 7], [9]]

暫無
暫無

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

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