Swift version: 5.6
Arrays already have methods to find and remove a single item, or remove all items at once, but for removing all instances of a specific item you need to use a closure-based method called removeAll(where:)
.
For example, given these numbers:
var numbers = [2, 1, 2, 3, 2, 4, 2, 5]
If we wanted to remove all instances of 2 from that array, we could use removeAll(where:)
like this:
numbers.removeAll { $0 == 2 }
If you want to return the array with items removed rather than doing it in place, you’d need to write your own extension to Array
, like this:
extension Array where Element: Equatable {
func removing(_ obj: Element) -> [Element] {
return filter { $0 != obj }
}
}
Now you can write let removed = numbers.removing(2)
to get back [1, 3, 4, 5]
.
SPONSORED From March 20th to 26th, you can join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.