Menu
CoddyTech

Cắt mảng phần 1

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 73 trên 86.

Đôi khi bạn không cần cả mảng, mà chỉ cần một phần của mảng. Swift giúp bạn dễ dàng trích xuất một tập hợp con các phần tử bằng cách cắt mảng với các toán tử phạm vi.

Để lấy một lát cắt, bạn dùng một phạm vi bên trong dấu ngoặc chỉ số dưới. Cách phổ biến nhất dùng toán tử phạm vi nửa mở (..<), bao gồm chỉ số bắt đầu nhưng không bao gồm chỉ số kết thúc:

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)  // [20, 30, 40]

Ở đây, 1..<4 cho ta các phần tử ở chỉ số 1, 2 và 3, nhưng không có phần tử ở chỉ số 4. Cách này hữu ích khi bạn biết chính xác muốn dừng ở đâu.

Nếu bạn muốn lấy cả chỉ số cuối, hãy dùng toán tử khoảng đóng (...):

let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice)  // ["b", "c", "d"]

Một chi tiết quan trọng: kết quả của thao tác cắt lát là một ArraySlice, không phải Array thông thường. Nếu cần một mảng thực sự, hãy bọc nó bằng Array():

let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced)  // [1, 2, 3]
challenge icon

Thử thách

Dễ
Viết một hàm (function) getMiddleElements nhận numbers, start và end, rồi trả về một phần của mảng bắt đầu từ chỉ số bắt đầu đến trước chỉ số kết thúc.

Dùng toán tử khoảng nửa mở (..<) để trích xuất phần được chỉ định của mảng và trả về phần đó dưới dạng một mảng thông thường.

Tham số:

  • numbers ([Int]): Mảng cần lấy một phần
  • start (Int): Chỉ số bắt đầu, được tính vào phần lấy ra
  • end (Int): Chỉ số kết thúc, không được tính vào phần lấy ra

Giá trị trả về: Một mảng chứa các phần tử từ chỉ số bắt đầu đến trước chỉ số kết thúc ([Int])

Ví dụ: Nếu numbers là [10, 20, 30, 40, 50, 60], start là 1 và end là 4, hàm sẽ trả về [20, 30, 40].

Tự làm thử

func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
    // 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