diff --git a/assignments/q1-multiples.js b/assignments/q1-multiples.js index ebe5e18..2a71976 100644 --- a/assignments/q1-multiples.js +++ b/assignments/q1-multiples.js @@ -1,3 +1,9 @@ function multiples (limit) { - // ... + var sum = 0; + for (var i = 0; i < limit; i++) { + if (i % 3 === 0 || i % 5 === 0) { + sum += i; + } + } + return sum; } diff --git a/assignments/q2-map.js b/assignments/q2-map.js index a01bc71..affb66a 100644 --- a/assignments/q2-map.js +++ b/assignments/q2-map.js @@ -1,3 +1,7 @@ function map (xs, fn) { - // ... + var result = []; + for (var i = 0; i < xs.length; i++) { + result[i] = fn(xs[i]); + } + return result; } diff --git a/assignments/q3-filter.js b/assignments/q3-filter.js index 757f6f1..196dab4 100644 --- a/assignments/q3-filter.js +++ b/assignments/q3-filter.js @@ -1,3 +1,9 @@ function filter (xs, condition) { - // ... + var result = []; + xs.forEach(function(entry){ + if (condition(entry)) { + result.push(entry); + } + }); + return result; } diff --git a/assignments/q4-reduce.js b/assignments/q4-reduce.js index becc358..46aab0b 100644 --- a/assignments/q4-reduce.js +++ b/assignments/q4-reduce.js @@ -1,4 +1,7 @@ function reduce (xs, fn, seed) { - // NOTE: that seed is optional; you should give the appropriate default in the function body - // ... -} + var memo = seed; + for (var i = !memo ? 1 : 0; i < xs.length; i++) { + memo = fn(!memo ? xs[0] : memo, xs[i]); + } + return memo; +} \ No newline at end of file