scrimba
Note at 0:56
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Note at 0:56
AboutCommentsNotes
Note at 0:56
Expand for more info
main.js
run
preview
console
function sumOddFibonacciNumbers(num) {
let firstNum = 1;
let secondNum = 1;

//edge case
if(num === 1) return 2;

let fibonacciNumbers = [];
fibonacciNumbers.push(firstNum);
fibonacciNumbers.push(secondNum);

for(let i = 2; i < num; i++) {
let nextNum = firstNum + secondNum;

//if next number in sequence is greater than
//num, break the loop
if(nextNum > num) break;

if(nextNum % 2 !== 0) {
fibonacciNumbers.push(nextNum);
}

firstNum = secondNum;
secondNum = nextNum;
}

let sum = fibonacciNumbers.reduce((acc, val) => {
return acc + val;
}, 0)

return sum;
}



/**
* Test Suite
*/
describe('sumOddFibonacciNumbers()', () => {
it('returns sum of all odd Fibonnci numbers', () => {
// arrange
const num = 10;

// act
const result = sumOddFibonacciNumbers(num);

// log
console.log("result 1: ", result);

// assert
expect(result).toBe(10);
});

it('returns sum of all odd Fibonnci numbers 2nd example', () => {
// arrange
const num = 1000;

// act
const result = sumOddFibonacciNumbers(num);

// log
console.log("result 2: ", result);

// assert
expect(result).toBe(1785);
});
});
Console
"result 2: "
,
1785
,
"result 1: "
,
10
,
/index.html
LIVE