while vs for using index

Benchmark created by Marcel Duran on


Description

Compare the performance of several types of for and while loops using the index inside the statement. The idea of comparing those loops is because when decrementing the iteration variable (i--) an adjustment is needed for ascending order output. Other types of loops gotten from http://jsperf.com/for-vs-while/3

Preparation HTML

<script>
  var arr = (new Array(1e3 + 1)).join(1).split(''),
      len = arr.length;
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
for (i++)
var i, ret = [];
for (i = 0; i < len; i++) {
 ret[i] = '[' + i + '] = ' + arr[i];
}
ready
while desc
var ret = [],
    i = len;
while (i--) {
 ret[i] = '[' + i + '] = ' + arr[i];
}
ready
while asc (aux)
var j, ret = [],
    i = len;
while (i--) {
 j = len - i - 1;
 ret[j] = '[' + j + '] = ' + arr[j];
}
ready
while asc (no aux)
var ret = [],
    i = len;
while (i--) {
 ret[len - i - 1] = '[' + (len - i - 1) + '] = ' + arr[len - i - 1];
}
ready
for (++i)
var i, ret = [];
for (i = 0; i < len; ++i) {
 ret[i] = '[' + i + '] = ' + arr[i];
}
ready
for (advanced) asc (aux)
var j, i = len,
    ret = [];
for (; i--;) {
 j = len - i - 1;
 ret[j] = '[' + j + '] = ' + arr[j];
}
ready
for (advanced) asc (no aux)
var i = len,
    ret = [];
for (; i--;) {
 ret[len - i - 1] = '[' + (len - i - 1) + '] = ' + arr[len - i - 1];
}
ready
for (advanced) desc
var i = len,
    ret = [];
for (; i--;) {
 ret[i] = '[' + i + '] = ' + arr[i];
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.