No Swift 3 e 4 , isso seria:
Com números, de acordo com a resposta de Johnston:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(a)
Com strings como a pergunta do 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)
No entanto, agora no Swift 4.2 ou posterior, existe uma maneira ainda melhor e mais rápida que foi recomendada pela Apple em WWDC2018:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
Esta nova forma tem várias vantagens:
- É mais rápido do que as implementações com
filter
.
- Isso elimina a necessidade de reverter matrizes.
- Ele remove itens no local e, portanto, atualiza o array original em vez de alocar e retornar um novo array.