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.
Desafio
FácilO 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
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
4Operadores - Parte 1
Operadores aritméticosDivisão inteiraOperador móduloAtalhos aritméticosRevisão - Matemática básicaOperadores de comparação7Entrada e Saída Básicas
SaídaSaída com VariáveisFormatação de StringsEntradaConversão de TipoRevisão - Até 120Revisão - Verdadeiro ou Falso10Funções
Declare uma funçãoArgumentosRetornoTipos de retornoRevisão - Função SigmaRevisão - Função de validaçãoValores padrão13Percorrendo Arrays
Percorrendo elementosPercorrendo com índicesPercorrendo strings — Parte 1Percorrendo strings — Parte 216Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Revisão - Lógica simplesOperadores lógicos Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz3Variáveis - Parte 2
Declaração de tipoInferência de tipoConstantesRevisão - Inicialização de variáveisConversão de tipo6Tomada de decisões
Instrução ifIf - ElseRevisão - Calculadora simplesIf - Else aninhadoInstrução match9Laços de repetição
Laço forLaço whileInterromperContinuarRevisão - FatorialA função rangeLaço aninhadoRevisão - Entrada dinâmicaPratique por conta própria: Compilador de GDScript online