max.js
869 Bytes
define(['../function/makeIterator_'], function (makeIterator) {
/**
* Return maximum value inside array
*/
function max(arr, iterator, thisObj){
if (arr == null || !arr.length) {
return Infinity;
} else if (arr.length && !iterator) {
return Math.max.apply(Math, arr);
} else {
iterator = makeIterator(iterator, thisObj);
var result,
compare = -Infinity,
value,
temp;
var i = -1, len = arr.length;
while (++i < len) {
value = arr[i];
temp = iterator(value, i, arr);
if (temp > compare) {
compare = temp;
result = value;
}
}
return result;
}
}
return max;
});