61
задан 26 February 2019 в 05:47

3 ответа

Расширение для массива, чтобы сделать это легко и позволить объединять в цепочку:

public extension Array where Element: Equatable {
    @discardableResult
    public mutating func remove(_ item: Element) -> Array {
        if let index = firstIndex(where: { item == [110] }) {
            remove(at: index)
        }
        return self
    }

    @discardableResult
    public mutating func removeAll(_ item: Element) -> Array {
        removeAll(where: { item == [110] })
        return self
    }
}
0
ответ дан 31 October 2019 в 14:45

В Swift 3 и 4

var array = ["a", "b", "c", "d", "e", "f"]

for (index, element) in array.enumerated().reversed() {
    array.remove(at: index)
}

От Swift 4.2 можно использовать более усовершенствованный подход (быстрее и эффективная память)

array.removeAll(where: { [111] == "c" })

вместо

array = array.filter { ![112].hasPrefix("c") }

Read больше здесь

0
ответ дан 31 October 2019 в 14:45

Это - официальный ответ для нахождения индекса конкретного объекта, затем можно легко удалить любой объект с помощью того индекса:

var students = ["Ben", "Ivy", "Jordell", "Maxime"]
if let i = students.firstIndex(of: "Maxime") {
     // students[i] = "Max"
     students.remove(at: i)
}
print(students)
// Prints ["Ben", "Ivy", "Jordell"]

Вот ссылка: https://developer.apple.com/documentation/swift/array/2994720-firstindex

0
ответ дан 31 October 2019 в 14:45

Другие вопросы по тегам:

Похожие вопросы: