Я получил массив элементов из определенного класса.Я хочу сравнить элементы по порядку и удалить их, если последующее имеет равенство в определенном свойстве или является последним.
Например, в массиве элементов с разными цветами.Я хочу удалить зеленые элементы в конце и зеленые элементы рядом.
Я использую цикл while для проверки и запроса, есть ли лучший способ в swift.Я думаю, возможно с reduce
вы могли бы построить новый массив, но будет ли он быстрее?Вот пример кода.
struct Car {
var color: UIColor
}
var someCars = [Car(color: .blue), Car(color: .green), Car(color: .green), Car(color: .yellow), Car(color: .blue), Car(color: .green)]
var ix:Int = someCars.count - 1
while ix >= 0 {
if someCars[ix].color == .green && (ix == someCars.count - 1 || someCars[ix + 1].color == .green) {
someCars.remove(at: ix)
}
ix -= 1
}