Instance MethodSwift

firstIndex(where:)

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

func firstIndex(where predicate: (Self.Element) throws -> Bool) rethrows -> Self.Index?

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.

Returns

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

Overview

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'!"