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]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 cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.