如何在Swift中找到一个列表项的索引
Swift给了你一些方法来执行集合类型,以获得一个特定对象的索引。
要在Swift中找到数组中某项的索引,你可以使用数组类型的firstIndex(of:)方法。这个方法返回数组中第一个与给定元素相等的元素的索引,如果没有找到这样的元素,则返回nil。
如何打印清单项目的索引
我们来看看一个例子。
算法
第1步 – 定义一个输入阵列。
第2步 – 在输入数组上调用firstIndex()方法。
第3步–使用可选的绑定来获得一个索引。
第4步 – 如果找到的话,打印索引。
示例
import Foundation
let languages: [String] = ["Java", "C++", "Swift", "Python", "JavaScript"]
let targetString = "Swift"
if let index = languages.firstIndex(of: targetString) {
print("Index of \(targetString) is \(index)")
} else {
print("\(targetString) is not in the list")
}
输出
Index of Swift is 2
还有一些其他情况,你应该考虑和了解,以获得一个索引。
如果数组中出现重复的对象,将返回什么索引
在这种情况下,firstIndex()方法将返回列表中第一次出现的索引。比如说。
示例
import Foundation
let languages: [String] = ["Java", "C++", "Swift", "Python", "JavaScript", "Swift"]
let targetString = "Swift"
if let index = languages.firstIndex(of: targetString) {
print("Index of \(targetString) is \(index)")
} else {
print("\(targetString) is not in the list")
}
输出
Index of Swift is 2
如果你需要找到一个满足某种条件的元素的索引
你可以使用index(where:)方法来代替。这个方法接收一个返回Bool的闭包,并返回闭包返回true的数组中第一个元素的索引。比如说
示例
import Foundation
let languages: [String] = ["Java", "C++", "Swift", "Python", "JavaScript"]
let targetString = "Py"
if let index = languages.firstIndex(where: { $0.starts(with: targetString) }) {
print("Index of \(targetString) is \(index)")
} else {
print("\(targetString) is not in the list")
}
输出
Index of Py is 3
结论
Swift给了我们几种方法来获取数组中某项的索引。你可以根据你的要求使用任何方法。