Java Reference

In-Depth Information

if (n/i === Math.floor(n/i)){

factors.push(i);

}

}

return factors;

}

Now if you refresh the SpecRunner.html page, you should get a nice page confirming that

our test has passed, similar to the screenshot in
Figure 10.4
.

Figure 10.4. Success at last!

Our test passed, and Jasmine gives us some useful feedback about what our code does. But

just because our test passed, doesn't mean we can stop there. There is still one more step of

the TDD cycle: refactoring.

There are a few places where we can tidy the code up. First of all we should only really be

testing for factors up to the square root because if
n/i
is a whole number, not only is
i
a

factor, but
n/i
will be too. This will cut down the number of steps in the
for
loop dra-

matically. Secondly, the test to see if
i
is a factor of
n
can be written more succinctly using

the
%
operator. If
i
is a factor of
n
, then
n%i
will equal
0
because there's no remainder.

src/numberCruncher.js
(incomplete)

function factorsOf(n) {

var factors = [];