How to remove an element from an array in Swift

后端 未结 18 2186
灰色年华
灰色年华 2020-11-28 18:38

How can I unset/remove an element from an array in Apple\'s new language Swift?

Here\'s some code:

let animals = [\"cats\", \"dogs\", \"chimps\", \"m         


        
18条回答
  •  庸人自扰
    2020-11-28 18:49

    I came up with the following extension that takes care of removing elements from an Array, assuming the elements in the Array implement Equatable:

    extension Array where Element: Equatable {
      
      mutating func removeEqualItems(_ item: Element) {
        self = self.filter { (currentItem: Element) -> Bool in
          return currentItem != item
        }
      }
    
      mutating func removeFirstEqualItem(_ item: Element) {
        guard var currentItem = self.first else { return }
        var index = 0
        while currentItem != item {
          index += 1
          currentItem = self[index]
        }
        self.remove(at: index)
      }
      
    }
      
    

    Usage:

    var test1 = [1, 2, 1, 2]
    test1.removeEqualItems(2) // [1, 1]
    
    var test2 = [1, 2, 1, 2]
    test2.removeFirstEqualItem(2) // [1, 1, 2]
    

提交回复
热议问题