一尘不染

Swift数组的removeObjectsAtIndexes

swift

一个与等效的Swift数组NSMutableArray-removeObjectsAtIndexes:什么?逐个删除每个索引不起作用,因为删除一个索引后剩余的索引会移动。什么是实现此功能的有效方法?


阅读 415

收藏
2020-07-07

共1个答案

一尘不染

这是我当前使用的解决方案:

extension Array {
    mutating func removeObjectAtIndexes(indexes: [Int]) {
        var indexSet = NSMutableIndexSet()

        for index in indexes {
            indexSet.addIndex(index)
        }

        indexSet.enumerateIndexesWithOptions(.Reverse) {
            self.removeAtIndex($0.0)
            return
        }
    }

    mutating func removeObjectAtIndexes(indexes: Int...) {
        removeObjectAtIndexes(indexes)
    }
}
2020-07-07