Closure sort functions
by Alexey Zakharov
JavaScript
function filter(arr, func) {
var newArr = [];
for( var i = 0; i < arr.length; i++) {
if(func(arr[i])) {
newArr.push(arr[i]);
}
}
return newArr;
}
function inBetween(a, b) {
return function(i) {
if(i >= a && i <= b) {
return true;
}
return false;
}
}
function inArray(arr) {
return function(i) {
if(~arr.indexOf(i)) {
return true;
}
return false;
}
}
var arr = [1, 2, 3, 4, 5, 6, 7];
alert(filter(arr, function(a) {
return a % 2 == 0
})); // 2,4,6
alert( filter(arr, inBetween(3, 6)) ); // 3,4,5,6
alert( filter(arr, inArray([1, 2, 10])) ); // 1,2