Не получается отфильтровать массив

swift

#1

по сути в массиве должны остаться совсем другие значения.


#2

У Вас ошибка в том, что Вы удаляете элемент по индексу и у Вас все значения смещаются, а цикл остается неизменным и получается, что когда Вы хотите удалить 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]