Ruby/Rails - получить последние два значения в массиве

@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]

@numbers.last даст мне 8

Мне нужно взять последние две записи. Пока я пробовал это, однако он бросает NoMethodError:

@numbers.last - 1

Ответ 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]

Ответ 2

Массивы определяются с помощью [] not {}. Вы можете использовать отрицательные индексы и диапазоны, чтобы делать то, что вы хотите:

>> @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]

Ответ 3

Попробуйте это

@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
length = @numbers.length
@numbers[length - 2..length - 1]  => [7, 8]