In Swift, how can I check if an element exists in an array? Xcode does not have any suggestions for contain
, include
, or has
, and a quick search through the book turned up nothing. Any idea how to check for this? I know that there is a method find
that returns the index number, but is there a method that returns a boolean like ruby's #include?
?
Example of what I need:
var elements = [1,2,3,4,5] if elements.contains(5) { //do something }
Answer: Use the Array. isArray() Method You can use the JavaScript Array. isArray() method to check whether an object (or a variable) is an array or not. This method returns true if the value is an array; otherwise returns false .
To check if given Array contains a specified element in C programming, iterate over the elements of array, and during each iteration check if this element is equal to the element we are searching for.
To check if an array contains an element or not in Python, use the in operator. The in operator checks whether a specified element is an integral element of a sequence like string, array, list, tuple, etc.
To check if a value is not in array array, use the indexOf() method, e.g. arr. indexOf(myVar) === -1 . If the indexOf method returns -1 , then the value is not contained in the array.
Swift 2, 3, 4, 5:
let elements = [1, 2, 3, 4, 5] if elements.contains(5) { print("yes") }
contains()
is a protocol extension method of SequenceType
(for sequences of Equatable
elements) and not a global method as in earlier releases.
Remarks:
contains()
method requires that the sequence elements adopt the Equatable
protocol, compare e.g. Andrews's answer.NSObject
subclass then you have to override isEqual:
, see NSObject subclass in Swift: hash vs hashValue, isEqual vs ==.contains()
method which does not require the elements to be equatable and takes a predicate as an argument, see e.g. Shorthand to test if an object exists in an array for Swift?.Swift older versions:
let elements = [1,2,3,4,5] if contains(elements, 5) { println("yes") }
For those who came here looking for a find and remove an object from an array:
Swift 1
if let index = find(itemList, item) { itemList.removeAtIndex(index) }
Swift 2
if let index = itemList.indexOf(item) { itemList.removeAtIndex(index) }
Swift 3, 4
if let index = itemList.index(of: item) { itemList.remove(at: index) }
Swift 5.2
if let index = itemList.firstIndex(of: item) { itemList.remove(at: index) }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With