We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 024dd9e commit 28ec841Copy full SHA for 28ec841
exercises/basic_recursion/solution/solution.js
@@ -1,8 +1,7 @@
1
function reduce(arr, fn, initial) {
2
- return (function reduceOne(index, value) {
3
- if (index > arr.length - 1) return value // end condition
4
- return reduceOne(index + 1, fn(value, arr[index], index, arr)) // calculate & pass values to next step
5
- })(0, initial) // IIFE. kick off recursion with initial values
+ if (arr.length === 0) return initial // end condition
+ var subset = arr.slice(0, arr.length - 1) // setup recursive call with left subset
+ return fn(reduce(subset, fn, initial), arr[arr.length - 1]) // pass last element to traverse ltr
6
}
7
8
module.exports = reduce
0 commit comments