📜  从数组 swift 中获取索引(1)

📅  最后修改于: 2023-12-03 15:21:58.407000             🧑  作者: Mango

从数组 Swift 中获取索引

在Swift中,数组是一种有序的集合,每个元素都有唯一的数字索引。

下面是一些从Swift数组中获取索引的方法。

方法一:使用 firstIndex(of:)lastIndex(of:)

Swift数组有一个名为 firstIndex(of:) 的方法,该方法返回数组中指定元素的第一个索引位置。如果数组中没有该元素,则返回 nil

let fruits = ["apple", "banana", "grape"]
let bananaIndex = fruits.firstIndex(of: "banana") // 1
let watermelonIndex = fruits.firstIndex(of: "watermelon") // nil

类似地,lastIndex(of:) 方法返回数组中指定元素的最后一个索引位置。

let fruits = ["apple", "banana", "grape", "banana"]
let lastBananaIndex = fruits.lastIndex(of: "banana") // 3
let watermelonIndex = fruits.lastIndex(of: "watermelon") // nil
方法二:使用 index(where:)firstIndex(where:)

如果你需要查找特定条件的数组元素,并返回该元素的索引,则可以使用 index(where:) 方法。该方法接受一个返回 Bool 类型的闭包,用于确定要查找的元素是否符合特定条件。

let numbers = [1, 3, 7, 10, 14]
let index = numbers.index(where: { $0 % 2 == 0 }) // 3

类似地,firstIndex(where:) 方法返回数组中第一个符合特定条件的元素的索引。如果没有符合条件的元素,则返回 nil

let numbers = [1, 3, 7, 10, 14]
let index = numbers.firstIndex(where: { $0 % 5 == 0 }) // 3
let index2 = numbers.firstIndex(where: { $0 % 15 == 0 }) // nil
方法三:使用 enumerate()

Swift数组有一个名为 enumerate() 的方法,该方法返回一个元组的数组,每个元组都包含数组元素的索引和值。

let fruits = ["apple", "banana", "grape"]
for (index, value) in fruits.enumerated() {
    print("Index: \(index), Value: \(value)")
}

输出:

Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: grape
方法四:使用 indices

Swift数组还有一个名为 indices 的只读属性,该属性返回一个包含数组所有索引的范围(Range<Int>)。

let fruits = ["apple", "banana", "grape"]
for index in fruits.indices {
    print("Index: \(index), Value: \(fruits[index])")
}

输出:

Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: grape

总之,Swift提供了多种方法来获取数组中的索引。根据需要选择合适的方法即可。