31 lines
822 B
JavaScript
31 lines
822 B
JavaScript
|
/**
|
||
|
* A specialized version of `baseExtremum` for arrays which invokes `iteratee`
|
||
|
* with one argument: (value).
|
||
|
*
|
||
|
* @private
|
||
|
* @param {Array} array The array to iterate over.
|
||
|
* @param {Function} iteratee The function invoked per iteration.
|
||
|
* @param {Function} comparator The function used to compare values.
|
||
|
* @param {*} exValue The initial extremum value.
|
||
|
* @returns {*} Returns the extremum value.
|
||
|
*/
|
||
|
function arrayExtremum(array, iteratee, comparator, exValue) {
|
||
|
var index = -1,
|
||
|
length = array.length,
|
||
|
computed = exValue,
|
||
|
result = computed;
|
||
|
|
||
|
while (++index < length) {
|
||
|
var value = array[index],
|
||
|
current = +iteratee(value);
|
||
|
|
||
|
if (comparator(current, computed)) {
|
||
|
computed = current;
|
||
|
result = value;
|
||
|
}
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
module.exports = arrayExtremum;
|