An extended ES6 lastIndexOf.
This 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.
Kind: Exported function
Returns: number
- Returns index of found element, otherwise -1.
Throws:
TypeError
Ifarray
isnull
orundefined
.
Param | Type | Description |
---|---|---|
array | Array |
The array to search. |
searchElement | * |
Element to locate in the array . |
[fromIndex] | number |
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. |
[extend] | string |
Extension type: SameValue or SameValueZero . |
Example
import lastIndexOf from 'last-index-of-x';
const subject = [NaN, 2, 3, undefined, true, 'hej', null, 2, false, 0, -0];
// Standard mode, operates just like `Array.prototype.lastIndexOf`.
lastIndexOf(subject, null); // 6
lastIndexOf(testSubject, '2'); // -1
lastIndexOf(testSubject, NaN); // -1
lastIndexOf(testSubject, 0); // 10
lastIndexOf(testSubject, 2, -6); // 1
// `SameValueZero` mode extends `lastIndexOf` to match `NaN`.
lastIndexOf(subject, null, 'SameValueZero'); // 6
lastIndexOf(testSubject, '2', 'SameValueZero'); // -1
lastIndexOf(testSubject, NaN, 'SameValueZero'); // 0
lastIndexOf(testSubject, 0, 'SameValueZero'); // 10
lastIndexOf(testSubject, 2, -6, 'SameValueZero'); // 1
// `SameValue` mode extends `lastIndexOf` to match `NaN` and signed `0`.
lastIndexOf(subject, null, 'SameValue'); // 6
lastIndexOf(testSubject, '2', 'SameValue'); // -1
lastIndexOf(testSubject, NaN, 'SameValue'); // 0
lastIndexOf(testSubject, 0, 'SameValue'); // 9
lastIndexOf(testSubject, 2, -6, 'SameValue'); // 1