// Complete the following functions. const nFibonacci = (n) => { // fibonacci sequence: 1 2 3 5 8 13 ... // return the nth number in the sequence if (n < 2) return 1; return nFibonacci(n - 1) + nFibonacci(n - 2); }; const nFactorial = (n) => { // factorial example: !5 = 5 * 4 * 3 * 2 * 1 // return the factorial of `n` if (n === 1) return 1; return n * nFactorial(n - 1); }; /* Extra Credit */ const obj = [ 1, 1, 1, [ [ 1, 1, [ 1, [ 1, [ [ 1, ], 2, ], 1, ], 1, ], ], 1, 1, ], 1, 1, [ 1, 1, 1, ], ]; console.log(obj); const checkMatchingLeaves = (obj) => { let arr = []; if (Array.isArray(obj)) { obj.forEach((item) => { return checkMatchingLeaves(item); arr = item; } ); } arr.reduce(function(a, b) { return (a === b); } }; // return true if every property on `obj` is the same // otherwise return false /* eslint-enable no-unused-vars */ module.exports = { nFibonacci, nFactorial, checkMatchingLeaves, };