Trong Swift 3 và 4 , điều này sẽ là:
Với những con số, theo câu trả lời của Johnston:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(a)
Với chuỗi là câu hỏi của 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)
Tuy nhiên, bây giờ trong Swift 4.2 trở lên, thậm chí còn có một cách tốt hơn, nhanh hơn đã được Apple đề xuất trong WWDC2018:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
Cách mới này có một số ưu điểm:
- Nó nhanh hơn triển khai với
filter
.
- Nó không cần phải đảo ngược các mảng.
- Nó loại bỏ các mục tại chỗ và do đó nó cập nhật mảng ban đầu thay vì phân bổ và trả về một mảng mới.