1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
   |  function mapForEach(arr, fn) {
      var newArr = [];     for (var i=0; i < arr.length; i++) {         newArr.push(             fn(arr[i])         )     };
      return newArr; }
  var arr1 = [1,2,3]; console.log(arr1);
 
  var arr2 = mapForEach(arr1, function(item) {    return item * 2; }); console.log(arr2);
 
  var arr3 = mapForEach(arr1, function(item) {    return item > 2; }); console.log(arr3);
 
  var checkPastLimit = function(limiter, item) {     return item > limiter; } var arr4 = mapForEach(arr1, checkPastLimit.bind(this, 1)); console.log(arr4);
 
  var checkPastLimitSimplified = function(limiter) {     return function(limiter, item) {         return item > limiter;     }.bind(this, limiter); };
  var arr5 = mapForEach(arr1, checkPastLimitSimplified(1)); console.log(arr5);
 
  |