web-dev-qa-db-fra.com

Ruby/Rails - Récupère les deux dernières valeurs d'un tableau

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

@numbers.last me donnera 8

Je dois récupérer les deux derniers disques. Jusqu'ici, j'ai essayé ceci, mais cela jette une NoMethodError:

@numbers.last - 1

39
fuzz

last prend un argument:

@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
@numbers.last(2) # => [7,8]

Si vous souhaitez supprimer les deux derniers éléments:

@numbers.pop(2) #=> [7, 8]
p @numbers #=> [1, 2, 3, 4, 5, 6]
103
steenslag

Les tableaux sont définis en utilisant [] et non {}. Vous pouvez utiliser des indices et des plages négatifs pour faire ce que vous voulez:

>> @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]
14
Michael Kohl

Essaye ça

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