Array extension to remove object by value

前端 未结 15 1197
我在风中等你
我在风中等你 2020-11-22 08:30
extension Array {
    func removeObject(object: T) {
        var index = find(self, object)
        self.removeAtIndex(index)
    }
}
         


        
15条回答
  •  孤城傲影
    2020-11-22 08:40

    Using indexOf instead of a for or enumerate:

    extension Array where Element: Equatable {
    
       mutating func removeElement(element: Element) -> Element? {
          if let index = indexOf(element) {
             return removeAtIndex(index)
          }
          return nil
       }
    
       mutating func removeAllOccurrencesOfElement(element: Element) -> Int {
           var occurrences = 0
           while true {
              if let index = indexOf(element) {
                 removeAtIndex(index)
                 occurrences++
              } else {
                 return occurrences
              }
           }
       }   
    }
    

提交回复
热议问题