---
title: "lastIndex(where:)"
framework: swift
role: symbol
role_heading: Instance Method
path: "swift/lazyfiltersequence/lastindex(where:)"
---

# lastIndex(where:)

Returns the index of the last element in the collection that matches the given predicate.

## Declaration

```swift
func lastIndex(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.

## Return Value

Return Value The index of the last element in the collection that matches predicate, or nil if no elements match.

## Discussion

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. This example finds the index of the last name that begins with the letter A: let students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"] if let i = students.lastIndex(where: { $0.hasPrefix("A") }) {     print("\(students[i]) starts with 'A'!") } // Prints "Akosua starts with 'A'!" note: O(n), where n is the length of the collection.
