En Swift 3 y 4 , esto sería:
Con números, según la respuesta de Johnston:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(a)
Con cadenas como la pregunta del OP:
var b = ["a", "b", "c", "d", "e", "f"]
for (i,str) in b.enumerated().reversed()
{
if str == "c"
{
b.remove(at: i)
}
}
print(b)
Sin embargo, ahora en Swift 4.2 o posterior, hay una forma mejor y más rápida que fue recomendada por Apple en WWDC2018:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
Esta nueva forma tiene varias ventajas:
- Es más rápido que las implementaciones con
filter
.
- Elimina la necesidad de invertir matrices.
- Elimina elementos en el lugar y, por lo tanto, actualiza la matriz original en lugar de asignar y devolver una nueva matriz.