Spaces:
Runtime error
Runtime error
var baseFindIndex = require('./_baseFindIndex'), | |
baseIsNaN = require('./_baseIsNaN'), | |
strictLastIndexOf = require('./_strictLastIndexOf'), | |
toInteger = require('./toInteger'); | |
/* Built-in method references for those with the same name as other `lodash` methods. */ | |
var nativeMax = Math.max, | |
nativeMin = Math.min; | |
/** | |
* This method is like `_.indexOf` except that it iterates over elements of | |
* `array` from right to left. | |
* | |
* @static | |
* @memberOf _ | |
* @since 0.1.0 | |
* @category Array | |
* @param {Array} array The array to inspect. | |
* @param {*} value The value to search for. | |
* @param {number} [fromIndex=array.length-1] The index to search from. | |
* @returns {number} Returns the index of the matched value, else `-1`. | |
* @example | |
* | |
* _.lastIndexOf([1, 2, 1, 2], 2); | |
* // => 3 | |
* | |
* // Search from the `fromIndex`. | |
* _.lastIndexOf([1, 2, 1, 2], 2, 2); | |
* // => 1 | |
*/ | |
function lastIndexOf(array, value, fromIndex) { | |
var length = array == null ? 0 : array.length; | |
if (!length) { | |
return -1; | |
} | |
var index = length; | |
if (fromIndex !== undefined) { | |
index = toInteger(fromIndex); | |
index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); | |
} | |
return value === value | |
? strictLastIndexOf(array, value, index) | |
: baseFindIndex(array, baseIsNaN, index, true); | |
} | |
module.exports = lastIndexOf; | |