Menu
CoddyTech

Cắt mảng

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

Phương thức slice() trả về một mảng mới gồm một phần các phần tử. slice(begin, end) lấy các phần tử từ chỉ số begin đến trước chỉ số end:

var numbers := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers.slice(2, 6))
[2, 3, 4, 5]

Nếu không có end, lát cắt kéo dài đến cuối mảng:

print(numbers.slice(5))
[5, 6, 7, 8, 9]

Chỉ số âm đếm từ cuối. slice(-3) lấy ba phần tử cuối cùng, còn slice(0, -2) lấy mọi phần tử trừ hai phần tử cuối cùng:

print(numbers.slice(-3))
print(numbers.slice(0, -2))
[7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7]

Đối số thứ ba, bước nhảy, lấy phần tử thứ n. slice(1, 8, 2) lấy các chỉ số 1, 3, 5 và 7:

print(numbers.slice(1, 8, 2))
[1, 3, 5, 7]

slice() không thay đổi mảng ban đầu: numbers vẫn chứa đủ mười phần tử.

challenge icon

Thử thách

Dễ

Chương trình đọc một dòng gồm các mục được phân tách bằng dấu phẩy vào mảng items (đã được viết sẵn). In phần giữa của mảng bằng slice():

  • Nếu số mục là lẻ, hãy in mục ở giữa và một mục ở mỗi bên (3 mục; nếu chỉ có một mục thì in mục đó)
  • Nếu là chẵn, hãy in hai mục ở giữa

Với apple,banana,orange,grape, đầu ra là ["banana", "orange"], còn với a,b,c,d,e, đầu ra là ["b", "c", "d"].

Tự làm thử

extends Node

func _ready():
	var items := OS.read_string_from_stdin().split(",")
	# In ra các phần tử ở giữa
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: Trình biên dịch GDScript online