Eloquent JavaScript - Functions

iteration vs. recursion

by Denise Nepraunig

HTML

<div id="output1"></div>
<div id="output2"></div>

JavaScript

// speed overview here: http://jsperf.com/recursive-vs-iterative-factorial

// recursive
function rFac(n) {
    if (n == 1) {
        return 1;
    } else {
        return n * rFac(n-1);
    }
}

// iterative
function iFac(n) {
    for (i=n-1;i>=1;i--) {
        n*=i;
    }
    return n;
}

var output1 = rFac(10);
var output2 = iFac(10);

document.getElementById("output1").innerHTML = output1;
document.getElementById("output2").innerHTML = output2;