Может я чё-то пропустил в этой жизни, но зачем здесь функции, тем более анонимные, есть же цикл for each:

Код AS3:
function getNearest(arr:Vector.<Number>, number:Number):Number {
var result:Number;
var resultAssigned:Boolean = false;
var minDiff:Number;
for each (var item:Number in arr) {
var diff:Number = item - number;
var diffAbs:Number = diff < 0 ? -diff : diff;
if (!resultAssigned || diffAbs < minDiff) {
resultAssigned = true;
minDiff = diffAbs;
result = item;
}
}
return result;
}
Хотя уже не важно - бинарный поиск уже написали