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.
Desafío
FácilEl 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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosDivisión enteraOperador móduloAtajos aritméticosRepaso: matemáticas básicasOperadores de comparación7Entrada y salida básicas
SalidaSalida con variablesFormato de cadenasEntradaConversión de tipoRepaso: hasta 120Repaso: verdadero o falso10Funciones
Declarar una funciónArgumentosRetornoTipos de retornoRepaso: función SigmaRepaso: función de validaciónValores predeterminados5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaCómo obtener datos3Variables, parte 2
Declaración de tiposInferencia de tiposConstantesRepaso: inicializar variablesConversión de tipos9Bucles
Bucle forBucle whileBreakContinueRepaso - FactorialLa función rangeBucle anidadoRepaso - Entrada dinámicaPractica por tu cuenta: Compilador de GDScript online