Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b]

swift

#1

Задача такая: “Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.”
Уже неделю бьюсь с решением этой задачи, но без толку.
И на бумаге я понимаю, что по идее нужно просто перебирать через цикл каждое значение массива сравнивая его с интервалом [a,b].Если число попадает в интервал то я начинаю я тащить в конец массива , а там обнулять.
Но как это выразить на языке программирования - тупик.

var array4 : [Int] = [1,2,3,4]

var excludeValues = 0
var temp2 = 0
var a2: Int = 1
var b2: Int = 2

for index in 0…<array4.count {
if array4[index] <= b2 && array4[index] >= a2 {

    temp2 = array4[index]
    
}

}

print(array4)

У меня есть массив из 4-х элементов. Я знаю, как написать, чтобы обнулить все числа , которые нужно перетащить. Но как их перетащить?


#2

У вас на выходе должно получиться [3,4,0,0] или [0,0,3,4] ?


#3
var array = [1, 2, 3, 4, 5, 6, 7, 8, 10]
print(array)
array = array.filter { return !(3...5 ~= $0) }
print(array)

#4

Пакетик😳?



#5
let array = [1, 2, 3, 4, 5, 6, 7, 8, 10]

let result = (3...5).reduce(into: array) { arr, val in
    guard let index = arr.firstIndex(of: val) else { return }
    arr.remove(at: index)
    arr.append(0)
}

print(result) // [1, 2, 6, 7, 8, 10, 0, 0, 0]