In Swift 3 e 4 , questo sarebbe:
Con i numeri, secondo la risposta di Johnston:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(a)
Con stringhe come domanda dell'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)
Tuttavia, ora in Swift 4.2 o versioni successive, esiste anche un modo migliore e più veloce versioni consigliato da Apple nel WWDC2018:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
Questo nuovo modo ha diversi vantaggi:
- È più veloce delle implementazioni con
filter
.
- Elimina la necessità di invertire gli array.
- Rimuove gli elementi sul posto e quindi aggiorna l'array originale invece di allocare e restituire un nuovo array.