如何在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为我们提供了几种方法来获取数组中项目的索引。您可以根据您的需求使用任何方法。

更新于:2023年1月2日

15K+ 次浏览

开启您的职业生涯

完成课程后获得认证

开始学习
广告
© . All rights reserved.