Test case details

Preparation Code

<script src="https://code.jquery.com/jquery-git2.min.js"></script>
// Populate the base array var arr = []; for (var i = 0; i < 20; i++) { arr[i] = (Math.random() * 1000 |0); } function someFn(ix) { return ix << 1; } var len = arr.length, i = 0, arr2 = arr.slice();
i = 0; // reset counters if modified arr = arr2.slice(); // repopulate by copying back

Test cases

Test #1

for (var i = 0; i < arr.length; i++) { someFn(arr[i]); }

Test #2

while (i < len) { someFn(arr[i]); i++; }

Test #3

for (var i = 0; i < len; i++) { someFn(arr[i]); }

Test #4

for (var i = len; i > 0; i--) { someFn(arr[i]); }

Test #5

var i = len - 1; do { someFn(arr[i]); } while (i--);

Test #6

var i = len; if (i > 0) { do { someFn(arr[i]); } while (--i); }

Test #7

for (var i in arr) { someFn(arr[i]); }

Test #8

while (i = arr.shift()) { someFn(arr[i]); }

Test #9

arr.forEach(function(v) { someFn(arr[v]); })

Test #10

while ((i = arr.shift()) !== undefined) { someFn(arr[i]); }

Test #11

var a; while ((a = arr[i++]) !== undefined) { someFn(arr[a]); }

Test #12

while ((i = arr.pop()) !== undefined) { someFn(arr[i]); }

Test #13

var copy = arr.slice(0); while (i = copy.shift()) { someFn(arr[i]); }

Test #14

var l = len; while (l--) { someFn(arr[l]); }

Test #15

i = arr.pop(); while (i !== undefined) { someFn(arr[i]); i = arr.pop(); }

Test #16

for (; i < len; ++i) { someFn(arr[i]); }

Test #17

Object.keys(arr).forEach(function(i) { someFn(arr[i]); });

Test #18

while (i < arr.length) { someFn(arr[i]); i++; }

Test #19

var i = Object.keys(arr).length; while (i--) { someFn(arr[i]); }

Test #20

$.each(arr, function(index, value) { someFn(arr[value]); });

Test #21

while (i = arr.pop()) { someFn(arr[i]); }

Test #22

i = arr.shift(); while (i !== undefined) { someFn(arr[i]); i = arr.shift(); }

Test #23

var j = 0; while (j<arr.length) { someFn(arr[j]); j++; }