Cómo eliminar un elemento de una matriz en Swift

Resuelto Leopold Joy asked hace 10 años • 18 respuestas

¿Cómo puedo desarmar/eliminar un elemento de una matriz en el nuevo lenguaje Swift de Apple?

Aquí hay un código:

let animals = ["cats", "dogs", "chimps", "moose"]

animals[2]¿Cómo se podría eliminar el elemento de la matriz?

Leopold Joy avatar Jun 05 '14 11:06 Leopold Joy
Aceptado

La letpalabra clave es para declarar constantes que no se pueden cambiar. Si desea modificar una variable, debe usar varen su lugar, por ejemplo:

var animals = ["cats", "dogs", "chimps", "moose"]

animals.remove(at: 2)  //["cats", "dogs", "moose"]

Una alternativa no mutante que mantendrá la colección original sin cambios es usarla filterpara crear una nueva colección sin los elementos que desea eliminar, por ejemplo:

let pets = animals.filter { $0 != "chimps" }
mythz avatar Jun 05 '2014 04:06 mythz

Dado

var animals = ["cats", "dogs", "chimps", "moose"]

Eliminar el primer elemento

animals.removeFirst() // "cats"
print(animals)        // ["dogs", "chimps", "moose"]

Eliminar el último elemento

animals.removeLast() // "moose"
print(animals)       // ["cats", "dogs", "chimps"]

Eliminar elemento en el índice

animals.remove(at: 2) // "chimps"
print(animals)           // ["cats", "dogs", "moose"]

Eliminar elemento de índice desconocido

Para un solo elemento

if let index = animals.firstIndex(of: "chimps") {
    animals.remove(at: index)
}
print(animals) // ["cats", "dogs", "moose"]

Para múltiples elementos

var animals = ["cats", "dogs", "chimps", "moose", "chimps"]

animals = animals.filter(){$0 != "chimps"}
print(animals) // ["cats", "dogs", "moose"]

Notas

  • Los métodos anteriores modifican la matriz en su lugar (excepto filter) y devuelven el elemento que se eliminó.
  • Guía rápida para reducir el filtro de mapas
  • Si no desea modificar la matriz original, puede usar dropFirsto dropLastpara crear una nueva matriz.

Actualizado a Swift 5.2

Suragch avatar Aug 10 '2016 20:08 Suragch