Como obter o último elemento de um array em Ruby?


93

Exemplo:

a = [1, 3, 4, 5]
b = [2, 3, 1, 5, 6]

Como obtenho o último valor 5na matriz aou o último valor 6na matriz bsem usar a[3]e b[4]?

Respostas:


203

Use o -1índice (índices negativos contam para trás a partir do final da matriz):

a[-1] # => 5
b[-1] # => 6

ou Array#lastmétodo:

a.last # => 5
b.last # => 6

23
Não vamos esquecer o conveniente Array#lasttambém :)[1,2,3].last #=> 3
Lee Jarvis

14
@theTinMan Visto que o pop também modifica o array, não é o que foi pedido aqui.
sepp2k

Obrigado pela opção de sinal -ve seu tremendo.
vidur punj de

8
Além disso, a.last = 10 #=> NoMethodError: undefined method last=' mas a[-1] = 10funciona como pretendido.
GregPK de

10

Outra maneira, usando o operador splat:

*a, last = [1, 3, 4, 5]

STDOUT:
a: [1, 3, 4]
last: 5
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.