Как удалить несколько элементов из массива swift?
например у меня есть массив
var array = [1, 2, 3, 4]
Я хочу удалить элемент в индексе 1, а затем в индексе 3 " пусть он будет в цикле for" Но удаление элемента в индексе 1 переместит элемент в индексе 3 в индекс 2 любые предложения ?
3 ответов
дан массив
var numbers = [1, 2, 3, 4]
и Set
индексов, которые вы хотите удалить
let indexesToRemove: Set = [1, 3]
вы хотите удалить значения "2"и " 4".
просто писать
numbers = numbers
.enumerated()
.filter { !indexesToRemove.contains(.offset) }
.map { .element }
результат
print(numbers) // [1, 3]
Swift 3: используйте быстрое закрытие для выполнения той же операции.
Если Ваш массив, как
var numbers = [0, 1, 2, 3, 4, 5]
и индексы, которые вы хотите удалить
let indexesToBeRemoved: Set = [2, 4]
numbers = numbers
.enumerated()
.filter { !indexesToRemove.contains(.offset) }
.map { .element }
and result
печати(номера) // [0, 1, 3, 5]
Swift 3: Вот такая же операция с объектом JSON (dictionary)
var arrayString = [
[ "char" : "Z" ],
[ "char" : "Y" ],
[ "char" : "X" ],
[ "char" : "W" ],
[ "char" : "V" ],
[ "char" : "U" ],
[ "char" : "T" ],
[ "char" : "S" ]
]
let arrayIndex = [2, 3, 5]
arrayString = arrayString.enumerated()
.filter { !arrayIndex.contains(.0 + 1) }
.map { .1 }
print(arrayString)
[["char": "Z"], ["char": "W"], ["char": "U"], ["name": "T"], ["name": "S"]]