Menu
CoddyTech

Phương thức enumerate

Thuộc phần Kiến thức nền tảng trong hành trình Swift của Coddy. Bài học 70 trên 86.

Đôi khi, khi lặp qua một mảng, bạn cần biết không chỉ phần tử mà cả vị trí của nó. Bạn có thể tự theo dõi chỉ số bằng một biến đếm, nhưng Swift có cách gọn hơn: phương thức enumerated().

Khi gọi enumerated() trên một mảng, hàm này trả về một dãy tuple, trong đó mỗi tuple chứa chỉ số và phần tử:

let colors = ["Red", "Green", "Blue"]

for (index, color) in colors.enumerated() {
    print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue

Hãy chú ý cách ta phân rã từng bộ (tuple) ngay trong vòng lặp bằng (index, color). Nhờ vậy, ta có thể truy cập cả hai giá trị mà không cần viết thêm code.

Điều này đặc biệt hữu ích khi bạn cần hiển thị danh sách được đánh số hoặc thực hiện các thao tác phụ thuộc vào vị trí của một phần tử:

let tasks = ["Wake up", "Exercise", "Eat breakfast"]

for (index, task) in tasks.enumerated() {
    print("Task \(index + 1): \(task)")
}
// Nhiệm vụ 1: Thức dậy
// Nhiệm vụ 2: Tập thể dục
// Nhiệm vụ 3: Ăn sáng

Phương thức enumerated() giúp code của bạn gọn gàng và dễ đọc hơn so với việc tự quản lý một biến đếm riêng.

challenge icon

Thử thách

Dễ
Viết một hàm (function) formatWithPositions nhận items và trả về một chuỗi đã định dạng, hiển thị từng phần tử cùng số thứ tự của nó.

Dùng phương thức enumerated() để duyệt qua mảng (array) và tạo chuỗi có số thứ tự bắt đầu từ 1 đứng trước mỗi phần tử.

Cách thực hiện:

  1. Duyệt qua mảng bằng enumerated()
  2. Với mỗi phần tử, tạo một chuỗi theo định dạng "position. item" (đánh số bắt đầu từ 1)
  3. Nối tất cả chuỗi đã định dạng bằng ký tự xuống dòng (\n)

Tham số:

  • items ([String]): Một mảng chuỗi cần định dạng

Giá trị trả về: Một chuỗi duy nhất, mỗi phần tử nằm trên một dòng riêng và có số thứ tự đứng trước (String). Định dạng: "1. item1\n2. item2\n3. item3"

Ví dụ: Nếu items là ["Apple", "Banana", "Cherry"], hàm sẽ trả về:

"1. Apple\n2. Banana\n3. Cherry"

Lưu ý: Nếu mảng rỗng, hãy trả về chuỗi rỗng "".

Tự làm thử

func formatWithPositions(items: [String]) -> String {
    // Viết code ở đây
}
quiz iconTự kiểm tra

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

Tự luyện tập: Playground Swift