JavaScript Array.prototype.lastIndexOf()

JavaScript Array.prototype.lastIndexOf()
0.0 0


The lastIndexOf() method returns the last index at which a given element can be found in the array, or -1 if it is not present. The array is searched backwards, starting at fromIndex.


arr.lastIndexOf(searchElement[, fromIndex = arr.length - 1])


  • searchElement

    • Element to locate in the array.
  • fromIndex

    • Optional. The index at which to start searching backwards. Defaults to the array’s length minus one, i.e. the whole array will be searched. If the index is greater than or equal to the length of the array, the whole array will be searched. If negative, it is taken as the offset from the end of the array. Note that even when the index is negative, the array is still searched from back to front. If the calculated index is less than 0, -1 is returned, i.e. the array will not be searched.

MDN link | MSDN link


The index of the last occurrence of searchElement in the array, or -1 if searchElement is not found.


lastIndexOf compares searchElement to elements of the Array using strict equality (the same method used by the ===, or triple-equals, operator).


The search occurs in descending index order (last member first). To search in ascending order, use the indexOf method.

The optional fromIndex argument specifies the array index at which to begin the search. If fromIndex is greater than or equal to the array length, the whole array is searched. If fromIndex is negative, the search starts at the array length plus fromIndex. If the computed index is less than 0, -1 is returned.


var array = [2, 5, 9, 2];
array.lastIndexOf(2);     // 3
array.lastIndexOf(7);     // -1
array.lastIndexOf(2, 3);  // 3
array.lastIndexOf(2, 2);  // 0
array.lastIndexOf(2, -2); // 0
array.lastIndexOf(2, -1); // 3
// Create an array.
var ar = ["ab", "cd", "ef", "ab", "cd"];

// Determine the first location, in descending order, of "cd".
document.write(ar.lastIndexOf("cd") + "<br/>");

// Output: 4

// Find "cd" in descending order, starting at index 2.
document.write(ar.lastIndexOf("cd", 2) + "<br/>");

// Output: 1

// Search for "gh" (which is not found).
document.write(ar.lastIndexOf("gh")+ "<br/>");

// Output: -1

// Find "ab" with a fromIndex argument of -3.
// The search in descending order starts at index 3,
// which is the array length minus 2.
document.write(ar.lastIndexOf("ab", -3) + "<br/>");
// Output: 0