在Swift中,我如何检查数组中是否存在一个元素?Xcode并没有给出包含、包含或拥有的建议,快速搜索这本书也一无所获。知道怎么检查这个吗?我知道有一个方法找到返回索引号,但是否有一个方法返回一个布尔像ruby的#include??
我需要的例子:
var elements = [1,2,3,4,5]
if elements.contains(5) {
//do something
}
在Swift中,我如何检查数组中是否存在一个元素?Xcode并没有给出包含、包含或拥有的建议,快速搜索这本书也一无所获。知道怎么检查这个吗?我知道有一个方法找到返回索引号,但是否有一个方法返回一个布尔像ruby的#include??
我需要的例子:
var elements = [1,2,3,4,5]
if elements.contains(5) {
//do something
}
当前回答
如果用户发现特定的数组元素,则使用以下代码相同的整数值。
var arrelemnts = ["sachin", "test", "test1", "test3"]
if arrelemnts.contains("test"){
print("found") }else{
print("not found") }
其他回答
数组
let elements = [1, 2, 3, 4, 5, 5]
检查元素是否存在
elements.contains(5) // true
获取元素索引
elements.firstIndex(of: 5) // 4
elements.firstIndex(of: 10) // nil
获取元素计数
let results = elements.filter { element in element == 5 }
results.count // 2
斯威夫特4/5
实现这一点的另一种方法是使用过滤器函数
var elements = [1,2,3,4,5]
if let object = elements.filter({ $0 == 5 }).first {
print("found")
} else {
print("not found")
}
最简单的方法是在数组上使用过滤器。
let result = elements.filter { $0==5 }
如果元素存在,结果将显示已找到的元素;如果元素不存在,结果将为空。因此,简单地检查result是否为空将告诉您元素是否存在于数组中。我会使用以下方法:
if result.isEmpty {
// element does not exist in array
} else {
// element exists
}
包含等于的属性的数组
yourArray.contains(where: {$0.propertyToCheck == value })
返回布尔值。
我用滤镜。
let results = elements.filter { el in el == 5 }
if results.count > 0 {
// any matching items are in results
} else {
// not found
}
如果你愿意,你可以把它压缩成
if elements.filter({ el in el == 5 }).count > 0 {
}
希望这能有所帮助。
Swift 2更新
为默认实现欢呼!
if elements.contains(5) {
// any matching items are in results
} else {
// not found
}