├── countDown.js ├── factorial.js ├── helperMethodRecursion.js ├── pureRecursion.js └── sumRange.js /countDown.js: -------------------------------------------------------------------------------- 1 | function countDown(num) { 2 | if (num <= 0) { 3 | console.log("All done!"); 4 | return; 5 | } 6 | console.log(num); 7 | num--; 8 | countDown(num); 9 | } 10 | 11 | countDown(5); 12 | -------------------------------------------------------------------------------- /factorial.js: -------------------------------------------------------------------------------- 1 | function factorial(num) { 2 | if (num === 1) return 1; 3 | return num * factorial(num - 1); 4 | } 5 | 6 | console.log(factorial(5)); 7 | -------------------------------------------------------------------------------- /helperMethodRecursion.js: -------------------------------------------------------------------------------- 1 | function collectOddValues(arr) { 2 | let result = []; 3 | 4 | function helper(input) { 5 | if (input.length === 0) return; 6 | if (input[0] % 2 !== 0) { 7 | result.push(input[0]); 8 | } 9 | helper(input.slice(1)); 10 | } 11 | helper(arr); 12 | return result; 13 | } 14 | 15 | console.log(collectOddValues([1, 2, 3, 4, 5, 6, 7, 8, 9])); 16 | -------------------------------------------------------------------------------- /pureRecursion.js: -------------------------------------------------------------------------------- 1 | function collectOddValues(arr) { 2 | let newArr = []; 3 | if (arr.length === 0) { 4 | return newArr; 5 | } 6 | if (arr[0] % 2 !== 0) { 7 | newArr.push(arr[0]); 8 | } 9 | newArr = newArr.concat(collectOddValues(arr.slice(1))); 10 | return newArr; 11 | } 12 | 13 | console.log(collectOddValues([1, 2, 3, 4, 5, 6, 7, 8, 9])); 14 | -------------------------------------------------------------------------------- /sumRange.js: -------------------------------------------------------------------------------- 1 | function sumRange(num) { 2 | if (num === 1) return 1; 3 | return num + sumRange(num - 1); 4 | } 5 | 6 | console.log(sumRange(5)); 7 | console.log(sumRange(4)); 8 | console.log(sumRange(3)); 9 | --------------------------------------------------------------------------------