У Swift 3 та 4 це буде:
З цифрами, відповідно до відповіді Джонстона:
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
.
- Це позбавляє від необхідності реверсивних масивів.
- Він видаляє елементи на місці, і, отже, оновлює вихідний масив замість виділення та повернення нового масиву.