@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
的Ruby/Rails - 獲取數組中的
@numbers.last
的最後兩個值都會給我8
我要抓住最後的兩個記錄。到目前爲止,我已經試過了,但它拋出一個NoMethodError
:
@numbers.last - 1
@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
的Ruby/Rails - 獲取數組中的
@numbers.last
的最後兩個值都會給我8
我要抓住最後的兩個記錄。到目前爲止,我已經試過了,但它拋出一個NoMethodError
:
@numbers.last - 1
last
需要一個參數:
@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
@numbers.last(2) # => [7,8]
如果你要刪除的最後兩個項目:
@numbers.pop(2) #=> [7, 8]
p @numbers #=> [1, 2, 3, 4, 5, 6]
陣列使用[]
不{}
定義。您可以使用負的索引和範圍做你想做什麼:
>> @numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ] #=> [1, 2, 3, 4, 5, 6, 7, 8]
>> @numbers.last #=> 8
>> @numbers[-2..-1] #=> [7, 8]
它應該不是如果數組包含少於給定數量的項目,那麼:@numbers [-9 ..- 1]#=> nil',而不是返回現有的8個元素。在這方面「最後一刻」的表現要好得多。 '@ numbers.last(9)'會返回8元素數組。 – nightingale 2016-06-05 06:31:27
嘗試這
@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
length = @numbers.length
@numbers[length - 2..length - 1] => [7, 8]
+1,這是我總是完全忘記,因爲某些原因,雖然它讀取比索引版友好多了... – 2012-01-06 08:40:42
男人,這是乾淨的。謝謝,Ruby。 – 2015-09-02 16:30:48
我非常喜歡Ruby。 – danielricecodes 2017-05-24 17:03:17