Removing object from array in Swift 3 Removing object from array in Swift 3 ios ios

Removing object from array in Swift 3


The Swift equivalent to NSMutableArray's removeObject is:

var array = ["alpha", "beta", "gamma"]if let index = array.firstIndex(of: "beta") {    array.remove(at: index)}

if the objects are unique. There is no need at all to cast to NSArray and use indexOfObject:

The API index(of: also works but this causes an unnecessary implicit bridge cast to NSArray.

If there are multiple occurrences of the same object use filter. However in cases like data source arrays where an index is associated with a particular object firstIndex(of is preferable because it's faster than filter.

Update:

In Swift 4.2+ you can remove one or multiple occurrences of beta with removeAll(where:):

array.removeAll{$0 == "beta"}


var a = ["one", "two", "three", "four", "five"]// Remove/filter item with value 'three'a = a.filter { $0 != "three" }


For Swift 3, you can use index(where:) and include a closure that does the comparison of an object in the array ($0) with whatever you are looking for.

var array = ["alpha", "beta", "gamma"]if let index = array.index(where: {$0 == "beta"}) {  array.remove(at: index)}