lastIndexOf
Return the index of the last element which equals a provided search element.
Usage
var lastIndexOf = require( '@stdlib/array/base/last-index-of' );
lastIndexOf( x, searchElement, fromIndex, equalNaNs )
Returns the index of the last element which equals a provided search element.
var x = [ 1, 2, 3, 4, 5, 6 ];
var idx = lastIndexOf( x, 3, 5, false );
// returns 2
If the function is unable to find an element which equals a provided search element, the function returns -1
.
var x = [ 1, 2, 3, 4, 5, 6 ];
var idx = lastIndexOf( x, 7, 5, false );
// returns -1
To begin searching from a specific index, provide a corresponding fromIndex
argument.
var x = [ 1, 1, 2, 1, 2, 3, 3 ];
var idx = lastIndexOf( x, 2, 3, false );
// returns 2
If fromIndex
is less than zero, the starting index is resolved relative to the last array element, with the last array element corresponding to fromIndex = -1
.
var x = [ 1, 1, 2, 1, 2, 3, 3 ];
var idx = lastIndexOf( x, 2, -4, false );
// returns 2
When searching for a search element, the function checks for strict equality. As a consequence, NaN
values are considered distinct. In order to resolve the last element which is NaN
, set the equalNaNs
argument to true
.
var x = [ 1, 2, 3, NaN, 5, 6 ];
var idx = lastIndexOf( x, NaN, 5, false );
// returns -1
idx = lastIndexOf( x, NaN, 5, true );
// returns 3
Notes
The function scans an input array from the starting index to the beginning of the array (i.e., backward).
If provided an array-like object having a
lastIndexOf
method andequalNaNs
isfalse
, the function defers execution to that method and assumes that the method API has the following signature:x.lastIndexOf( searchElement, fromIndex )
If provided an array-like object without a
lastIndexOf
method or ifequalNaNs
istrue
, the function performs a linear scan and returns immediately upon finding a match.
Examples
var lastIndexOf = require( '@stdlib/array/base/last-index-of' );
var x = [ 'foo', 'bar', 'beep', 'boop', 'foo', 'bar' ];
var idx = lastIndexOf( x, 'beep', 5, false );
// returns 2
idx = lastIndexOf( x, 'bop', 5, false );
// returns -1
idx = lastIndexOf( x, 'foo', 5, false );
// returns 4
idx = lastIndexOf( x, 'foo', -3, false );
// returns 0
idx = lastIndexOf( x, 'foo', -50, false );
// returns -1