From 8eaf65566b616de7b69da0ebc0902246468f1c4f Mon Sep 17 00:00:00 2001 From: lordshadowist Date: Mon, 12 Sep 2016 16:46:09 -0700 Subject: [PATCH] Bill Cheng Finish eachmapreduce --- myEach.js | 5 ++++- myFilter.js | 0 myMap.js | 9 ++++++--- myReduce.js | 24 +++++++++++++++++++++--- 4 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 myFilter.js diff --git a/myEach.js b/myEach.js index e95bc02..e10c597 100644 --- a/myEach.js +++ b/myEach.js @@ -2,7 +2,10 @@ function myEach(arr, callback) { -// CODE INSIDE HERE // + for(var i = 0; i < arr.length; i++) + { + callback(arr[i], i, arr); + } } diff --git a/myFilter.js b/myFilter.js new file mode 100644 index 0000000..e69de29 diff --git a/myMap.js b/myMap.js index ccb09c3..3422439 100644 --- a/myMap.js +++ b/myMap.js @@ -1,9 +1,12 @@ // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Map function myMap(arr, callback) { - -// CODE INSIDE HERE // - + var result = []; + for(var i = 0; i < arr.length; i++) + { + result.push(callback(arr[i], i, arr)); + } + return result; } /* diff --git a/myReduce.js b/myReduce.js index 174fbe3..e5db39b 100644 --- a/myReduce.js +++ b/myReduce.js @@ -1,9 +1,27 @@ // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce for more details // Don't worry about initialValue at first. You can always add it in later. -function myReduce(arr, callback) { - -// CODE INSIDE HERE // +function myReduce(arr, callback, init) +{ + + if(!init) + { + var result = arr[0]; + for(var i = 1; i < arr.length; i++) + { + result = callback(result, arr[i], i, arr); + } + return result; + } + else // if init + { + var result = init; + for(var i = 0; i < arr.length; i++) + { + result = callback(result, arr[i], i, arr); + } + return result; + } }