ในSwift 3 และ 4สิ่งนี้จะเป็น:
ด้วยตัวเลขตามคำตอบของ Johnston:
var a = [1,2,3,4,5,6]
for (i,num) in a.enumerated().reversed() {
a.remove(at: i)
}
print(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)
อย่างไรก็ตามตอนนี้ใน Swift 4.2 หรือใหม่กว่ายังมีวิธีที่ดีกว่าและเร็วกว่าที่ Apple แนะนำใน WWDC2018:
var c = ["a", "b", "c", "d", "e", "f"]
c.removeAll(where: {$0 == "c"})
print(c)
วิธีใหม่นี้มีข้อดีหลายประการ:
filter
มันจะเร็วกว่าการใช้งานด้วย
- มันไม่จำเป็นต้องย้อนกลับอาร์เรย์
- มันจะลบรายการในตำแหน่งและทำให้มันอัปเดตอาร์เรย์เดิมแทนที่จะจัดสรรและส่งคืนอาร์เรย์ใหม่