Làm thế nào để lấy phần tử cuối cùng của một mảng trong Ruby?


94

Thí dụ:

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

Làm cách nào để lấy giá trị cuối cùng 5trong mảng ahoặc giá trị cuối cùng 6trong mảng bmà không sử dụng a[3]và b[4]?

Câu trả lời:


204

Sử dụng -1chỉ mục (các chỉ số âm đếm ngược từ cuối mảng):

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

hoặc Array#lastphương pháp:

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

23
Đừng quên thuận tiện Array#last, quá :)[1,2,3].last #=> 3
— Lee Jarvis

14
@theTinMan Vì pop cũng sửa đổi mảng nên nó không phải là thứ được yêu cầu ở đây.
— sepp2k

Cảm ơn vì tùy chọn dấu -ve rất nhiều.
— vidur punj

8
Ngoài ra trong khi đó a.last = 10 #=> NoMethodError: undefined method last=' nhưng a[-1] = 10hoạt động như dự định.
— GregPK

10

Một cách khác, sử dụng toán tử biểu tượng:

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

STDOUT:
a: [1, 3, 4]
last: 5
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.