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