Menu
CoddyTech

Segmentación de arrays

Parte de la sección Fundamentos del Journey de GDScript de Coddy. Lección 73 de 92.

El método slice() devuelve un nuevo arreglo con parte de los elementos. slice(begin, end) toma los elementos desde el índice begin hasta el índice end, sin incluirlo:

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

Sin end, el segmento llega hasta el final del array:

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

Los índices negativos cuentan desde el final. slice(-3) toma los últimos tres elementos, y slice(0, -2) todo excepto los últimos dos:

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

Un tercer argumento, el paso, toma cada n-ésimo elemento. slice(1, 8, 2) toma los índices 1, 3, 5 y 7:

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

slice() no cambia el arreglo original: numbers sigue conteniendo los diez elementos.

challenge icon

Desafío

Fácil

El programa lee una línea de elementos separados por comas en el arreglo items (ya escrito). Imprime la parte central del arreglo con slice():

  • Si el número de elementos es impar, imprime el elemento central y un elemento a cada lado (3 elementos; si hay un solo elemento, imprime ese elemento)
  • Si es par, imprime los dos elementos centrales

Para apple,banana,orange,grape, la salida es ["banana", "orange"], y para a,b,c,d,e es ["b", "c", "d"].

Pruébalo tú mismo

extends Node

func _ready():
	var items := OS.read_string_from_stdin().split(",")
	# Imprime los elementos del medio
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de GDScript online