Menu
CoddyTech

Fatiamento de arrays

Parte da seção Fundamentos do Journey de GDScript da Coddy. Lição 73 de 92.

O método slice() retorna um novo array com parte dos elementos. slice(begin, end) pega os elementos do índice begin até, mas sem incluir, o índice end:

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

Sem end, o recorte vai até o final do array:

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

Índices negativos contam a partir do final. slice(-3) pega os três últimos elementos, e slice(0, -2) pega tudo, exceto os dois últimos:

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

Um terceiro argumento, o passo, seleciona cada enésimo elemento. slice(1, 8, 2) seleciona os índices 1, 3, 5 e 7:

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

slice() não altera o array original: numbers ainda contém todos os dez elementos.

challenge icon

Desafio

Fácil

O programa lê uma linha de itens separados por vírgulas no array items (já escrito). Imprima a parte central do array com slice():

  • Se o número de itens for ímpar, imprima o item do meio e um item de cada lado (3 itens; com um único item, imprima esse item)
  • Se for par, imprima os dois itens do meio

Para apple,banana,orange,grape, a saída é ["banana", "orange"], e para a,b,c,d,e, é ["b", "c", "d"].

Experimente você mesmo

extends Node

func _ready():
	var items := OS.read_string_from_stdin().split(",")
	# Imprima os itens do meio
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de GDScript online