Что-то нашло. Более универсальный вариант

Код AS1/AS2:
/**
* @private
*/
function getEssential(evaluateFunction:Function, evaluateCollection:Array):Number {
evaluateCollection = evaluateCollection.slice();
var interim: Number;
while ( interim = evaluateFunction.apply(null, evaluateCollection) ) {
evaluateCollection.shift();
evaluateCollection[0] = interim;
}
return evaluateCollection[0];
}
var arr:Array = [1, 12, 123, 546, -2, 2, 67, 7];
trace( 'Minimum: ' + getEssential(Math.min, arr) );
trace( 'Maximum: ' + getEssential(Math.max, arr) );