Вот аналогичный фильтр, но немного проще:
function filter(arr, a, b) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= a && arr[i] <= b) {
result.push(arr[i])
}
}
return result;
}
var arr = [2, 5, 12, 66, 7, 4, 8, 3, 10]
filter(arr, 5, 10)