Métodos de Array
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 65 de 86.
Más allá de añadir y eliminar elementos, los arrays de Swift vienen con varios métodos útiles que facilitan el trabajo con colecciones.
La propiedad isEmpty comprueba si un array tiene elementos:
var tasks = [String]()
print(tasks.isEmpty) // true
tasks.append("Buy groceries")
print(tasks.isEmpty) // falsePara eliminar todos los elementos a la vez, usa removeAll():
var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers) // []El método reversed() devuelve los elementos en orden inverso:
let letters = ["A", "B", "C"]
print(Array(letters.reversed())) // ["C", "B", "A"]Para ordenar, usa sorted() para obtener un nuevo array ordenado, o sort() para ordenar el array en el lugar:
let scores = [85, 42, 97, 63]
print(scores.sorted()) // [42, 63, 85, 97]
var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices) // [2.5, 5.75, 9.99]Ten en cuenta que sorted() devuelve un nuevo array mientras deja el original sin cambios, mientras que sort() modifica el array original directamente.
Desafío
FácilEscribe una función processScores que reciba scores y devuelva una cadena formateada con información sobre las puntuaciones.
La función debe analizar el array y construir una cadena de resultado con tres piezas de información.
Lógica:
- Comprueba si el array está vacío usando
isEmpty - Si está vacío, devuelve
"No scores" - De lo contrario, obtén las puntuaciones ordenadas (orden ascendente) y las puntuaciones invertidas
- Devuelve una cadena combinando ambos resultados
Parámetros:
scores([Int]): Un array de puntuaciones enteras
Devuelve: Una cadena con el formato: "Sorted: [sorted_array], Reversed: [reversed_array]" o "No scores" si el array está vacío (String)
Ejemplo: Si scores es [85, 42, 97, 63], la función debería devolver:
"Sorted: [42, 63, 85, 97], Reversed: [63, 97, 42, 85]"Nota: El array invertido debe ser el inverso del array original, no del ordenado.
Hoja de referencia
Los arrays de Swift proporcionan varios métodos útiles para trabajar con colecciones:
La propiedad isEmpty comprueba si un array contiene algún elemento:
var tasks = [String]()
print(tasks.isEmpty) // true
tasks.append("Buy groceries")
print(tasks.isEmpty) // falseUsa removeAll() para eliminar todos los elementos de un array:
var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers) // []El método reversed() devuelve los elementos en orden inverso:
let letters = ["A", "B", "C"]
print(Array(letters.reversed())) // ["C", "B", "A"]Para ordenar, usa sorted() para crear un nuevo array ordenado, o sort() para ordenar en el mismo lugar:
let scores = [85, 42, 97, 63]
print(scores.sorted()) // [42, 63, 85, 97]
var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices) // [2.5, 5.75, 9.99]sorted() devuelve un nuevo array sin modificar el original, mientras que sort() modifica el array directamente.
Pruébalo tú mismo
func processScores(scores: [Int]) -> String {
// Escribe el código aquí
}
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éticosOperador de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - Inicializar variables5Operadores 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 bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica12Fundamentos de Arrays
Declarar un ArrayAcceder a elementosModificar ArraysMétodos de ArrayResumen - Lista de productosResumen - Array invertidoTuplas