How to remove an element from an array in Swift

后端 未结 18 2182
灰色年华
灰色年华 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:59

    Swift 5: Here is a cool and easy extension to remove elements in an array, without filtering :

       extension Array where Element: Equatable {
    
        // Remove first collection element that is equal to the given `object`:
        mutating func remove(object: Element) {
            guard let index = firstIndex(of: object) else {return}
            remove(at: index)
        }
    
    }
    

    Usage :

    var myArray = ["cat", "barbecue", "pancake", "frog"]
    let objectToRemove = "cat"
    
    myArray.remove(object: objectToRemove) // ["barbecue", "pancake", "frog"]
    

    Also works with other types, such as Int since Element is a generic type:

    var myArray = [4, 8, 17, 6, 2]
    let objectToRemove = 17
    
    myArray.remove(object: objectToRemove) // [4, 8, 6, 2]
    

提交回复
热议问题