по сути в массиве должны остаться совсем другие значения.
Не получается отфильтровать массив
vintik
#1
У Вас ошибка в том, что Вы удаляете элемент по индексу и у Вас все значения смещаются, а цикл остается неизменным и получается, что когда Вы хотите удалить 3, то ее индекс уже будет равняться 0, а не 1, а удаляете все равно по 1 индексу.
Какая у Вас стоит задача?
Если не менять особо Ваш код, то можно записать так (это просто приближенный вариант того, что Вы хотите как я понял):
var array = [6, 3, 6, 101, 789, 432, 223, 2]
for (index, value) in array.enumerated() {
switch value {
case _ where value < 10:
array[index] = 0
default:
break
}
}
let filteredArray = array.filter { $0 > 0 }
print(filteredArray) // [101, 789, 432, 223]
Если Вам просто нужно отфильтровать массив и все, то вот так можно:
let filteredArray = array.filter { $0 > 10 } // [101, 789, 432, 223]