Di Swift 3 dan 4 , ini akan menjadi:
Dengan angka, menurut jawaban Johnston:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(a)
Dengan string sebagai pertanyaan 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)
Namun, sekarang di Swift 4.2 atau yang lebih baru, ada cara yang lebih baik dan lebih cepat yang direkomendasikan oleh Apple di WWDC2018:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
Cara baru ini memiliki beberapa keunggulan:
- Ini lebih cepat daripada penerapan dengan
filter
.
- Itu menghilangkan kebutuhan untuk membalikkan array.
- Ini menghapus item di tempat, dan dengan demikian memperbarui larik asli alih-alih mengalokasikan dan mengembalikan larik baru.