Instance Method

firstIndex(where:)

Returns the first index in which an element of the collection satisfies the given predicate.

Declaration

func firstIndex(where predicate: (HasAnchoring) throws -> Bool) rethrows -> Int?

Parameters

predicate

A closure that takes an element as its argument and returns a Boolean value that indicates whether the passed element represents a match.

Return Value

The index of the first element for which predicate returns true. If no elements in the collection satisfy the given predicate, returns nil.

Discussion

You can use the predicate to find an element of a type that doesn’t conform to the Equatable protocol or to find an element that matches particular criteria. Here’s an example that finds a student name that begins with the letter “A”:

let students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
if let i = students.firstIndex(where: { $0.hasPrefix("A") }) {
    print("\(students[i]) starts with 'A'!")
}
// Prints "Abena starts with 'A'!"

Complexity: O(n), where n is the length of the collection.

See Also

Manipulating Indices

var indices: DefaultIndices<Scene.AnchorCollection>

The indices that are valid for subscripting the collection, in ascending order.

func index(Int, offsetBy: Int) -> Int

Returns an index that is the specified distance from the given index.

func index(Int, offsetBy: Int, limitedBy: Int) -> Int?

Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.

func index(of: HasAnchoring) -> Int?

Returns the first index where the specified value appears in the collection.

Deprecated
func firstIndex(of: HasAnchoring) -> Int?

Returns the first index where the specified value appears in the collection.

func formIndex(inout Int, offsetBy: Int)

Offsets the given index by the specified distance.

func formIndex(inout Int, offsetBy: Int, limitedBy: Int) -> Bool

Offsets the given index by the specified distance, or so that it equals the given limiting index.

func formIndex(after: inout Int)

Replaces the given index with its successor.

func distance(from: Int, to: Int) -> Int

Returns the distance between two indices.