为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Qyouu 2019-07-03 14:29:50
如何检查元素是否在数组中在SWIFT中,如何检查数组中是否存在一个元素?Xcode没有任何建议contain, include,或has,快速翻阅这本书,什么也没有发现。知道怎么查这个吗?我知道有一种方法find返回索引号,但是否存在返回布尔值(如ruby‘s)的方法?#include??我需要的例子:var elements = [1,2,3,4,5]if elements.contains(5) {   //do something}
查看完整描述

3 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

斯威夫特2,3,4,5:

let elements = [1, 2, 3, 4, 5]if elements.contains(5) {
    print("yes")}

contains()协议扩展方法SequenceType(用于.的序列)Equatable元素),而不是早期版本中的全局方法。

备注:

SWIFT旧版本:

let elements = [1,2,3,4,5]if contains(elements, 5) {
    println("yes")}


查看完整回答
反对 回复 2019-07-03
?
偶然的你

TA贡献1841条经验 获得超3个赞

对于那些来这里寻找对象并从数组中删除对象的人:

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,5

if let index = itemList.index(of: item) {
    itemList.remove(at: index)}


查看完整回答
反对 回复 2019-07-03
?
互换的青春

TA贡献1797条经验 获得超6个赞

使用此分机:

extension Array {
    func contains<T where T : Equatable>(obj: T) -> Bool {
        return self.filter({$0 as? T == obj}).count > 0
    }}

用作:

array.contains(1)

更新SWIFT 2/3

请注意,在SWIFT 3(甚至2)中,扩展不再需要作为全局contains函数被构造成一对扩展方法。Array,允许您执行以下任一操作:

let a = [ 1, 2, 3, 4 ]a.contains(2)           // => true, only usable if Element : Equatable
a.contains { $0 < 1 }   // => false


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 698 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信