如何检查元素是否在数组中

如何检查元素是否在数组中

在SWIFT中,如何检查数组中是否存在一个元素?Xcode没有任何建议containinclude,或has,快速翻阅这本书,什么也没有发现。知道怎么查这个吗?我知道有一种方法find返回索引号,但是否存在返回布尔值(如ruby‘s)的方法?#include??

我需要的例子:

var elements = [1,2,3,4,5]if elements.contains(5) {
  //do something}


Qyouu
浏览 700回答 3
3回答

GCT1015

斯威夫特2,3,4,5:let elements = [1, 2, 3, 4, 5]if elements.contains(5) {     print("yes")}contains()是协议扩展方法的SequenceType(用于.的序列)Equatable元素),而不是早期版本中的全局方法。备注:这,这个contains()方法要求序列元素采用Equatable协议,比较。安德鲁斯的回答.如果序列元素是NSObject子类,则必须重写isEqual:,见SWIFT中的NSObject子类:散列vs hashValue,isequateVS=.还有另一个-更一般的-contains()方法,该方法不要求元素相等,并以谓词作为参数,请参见。测试一个对象是否存在于一个用于SWIFT的数组中?.SWIFT旧版本:let elements = [1,2,3,4,5]if contains(elements, 5) {     println("yes")}

偶然的你

对于那些来这里寻找对象并从数组中删除对象的人:SWIFT 1if let index = find(itemList, item) {     itemList.removeAtIndex(index)}SWIFT 2if let index = itemList.indexOf(item) {     itemList.removeAtIndex(index)}SWIFT 3,4,5if let index = itemList.index(of: item) {     itemList.remove(at: index)}

互换的青春

使用此分机:extension&nbsp;Array&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;func&nbsp;contains<T&nbsp;where&nbsp;T&nbsp;:&nbsp;Equatable>(obj:&nbsp;T)&nbsp;->&nbsp;Bool&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self.filter({$0&nbsp;as?&nbsp;T&nbsp;==&nbsp;obj}).count&nbsp;>&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;}}用作:array.contains(1)更新SWIFT 2/3请注意,在SWIFT 3(甚至2)中,扩展不再需要作为全局contains函数被构造成一对扩展方法。Array,允许您执行以下任一操作:let&nbsp;a&nbsp;=&nbsp;[&nbsp;1,&nbsp;2,&nbsp;3,&nbsp;4&nbsp;]a.contains(2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;=>&nbsp;true,&nbsp;only&nbsp;usable&nbsp;if&nbsp;Element&nbsp;:&nbsp;Equatable a.contains&nbsp;{&nbsp;$0&nbsp;<&nbsp;1&nbsp;}&nbsp;&nbsp;&nbsp;//&nbsp;=>&nbsp;false
打开App,查看更多内容
随时随地看视频慕课网APP