Phương thức của mảng
Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 61 trên 88.
Ruby cung cấp một số phương thức tích hợp sẵn giúp bạn làm việc với mảng dễ dàng hơn. Những phương thức này giúp bạn sắp xếp, đảo ngược và tìm phần tử mà không cần tự viết code phức tạp.
Phương thức sort sắp xếp các phần tử theo thứ tự tăng dần:
numbers = [3, 1, 4, 1, 5]
puts numbers.sort # Đầu ra: 1, 1, 3, 4, 5Để đảo ngược thứ tự các phần tử, hãy dùng phương thức reverse:
letters = ["a", "b", "c"]
puts letters.reverse # Đầu ra: c, b, aBạn có thể kết hợp các phương thức này để sắp xếp theo thứ tự giảm dần:
scores = [85, 92, 78, 95]
puts scores.sort.reverse # Đầu ra: 95, 92, 85, 78Các phương thức min và max giúp nhanh chóng tìm giá trị nhỏ nhất và lớn nhất:
prices = [29, 15, 42, 8]
puts prices.min # Đầu ra: 8
puts prices.max # Đầu ra: 42Để tính tổng các phần tử dạng số, hãy dùng sum:
quantities = [2, 5, 3]
puts quantities.sum # Đầu ra: 10Lưu ý rằng sort và reverse trả về mảng mới mà không thay đổi mảng ban đầu. Để sửa đổi trực tiếp mảng ban đầu, hãy thêm ! vào tên phương thức, như sort! hoặc reverse!.
Thử thách
DễĐọc một dòng đầu vào chứa các số nguyên được phân tách bằng dấu phẩy (ví dụ: 5,2,8,1,9,3).
Tách đầu vào thành một mảng số nguyên, rồi in các nội dung sau trên các dòng riêng:
- Mảng được sắp xếp theo thứ tự tăng dần (mỗi phần tử trên một dòng riêng)
- Mảng được sắp xếp theo thứ tự giảm dần (mỗi phần tử trên một dòng riêng)
- Giá trị nhỏ nhất
- Giá trị lớn nhất
- Tổng của tất cả phần tử
In một dòng trống giữa mỗi phần để dễ đọc.
Ví dụ, nếu đầu vào là 5,2,8,1,9,3, đầu ra sẽ là:
1
2
3
5
8
9
9
8
5
3
2
1
1
9
28Nếu đầu vào là 10,30,20, đầu ra sẽ là:
10
20
30
30
20
10
10
30
60Nếu đầu vào là 7,3,5,1, đầu ra sẽ là:
1
3
5
7
7
5
3
1
1
7
16Tự làm thử
# Đọc các số nguyên được phân tách bằng dấu phẩy
input = gets.chomp
# Tách đầu vào tại mỗi dấu phẩy và chuyển từng phần thành số nguyên
numbers = input.split(",").map(&:to_i)
# TODO: Viết code của bạn bên dưới
# 1. Sắp xếp mảng theo thứ tự tăng dần và in ra từng phần tử
# 2. In ra một dòng trống
# 3. Sắp xếp mảng theo thứ tự giảm dần và in ra từng phần tử
# 4. In ra một dòng trống
# 5. In ra giá trị nhỏ nhất
# 6. In ra giá trị lớn nhất
# 7. In ra tổng của tất cả phần tửBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
4Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động11Mảng
Tạo mảngTruy cập phần tử trong mảngThay đổi mảngPhương thức của mảngÔn tập: Mảng tíchÔn tập: Mảng đảo ngượcMẹo dùng mảng3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online