如何在Swift中查找列表项的索引?
Swift提供了一些方法可以在集合类型上执行操作以获取特定对象的索引。
要在Swift中查找数组中项目的索引,可以使用Array类型的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为我们提供了几种方法来获取数组中项目的索引。您可以根据您的需求使用任何方法。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP