Test case details

Preparation Code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> </script>
var i, value, length, values = [], sum = 0, context = values; for (i = 0; i < 10000; i++) { values[i] = Math.random(); } function add(val) { sum += val; } function customForEach(array, callback) { const arrayLength = array.length for (var i = 0; i < arrayLength; ++i) { callback.call(array, array[i], i, array) } } function customForEach2(array, callback) { const arrayLength = array.length; for (var i = 0; i < arrayLength; ++i) { callback(array[i]); } }
i = 0; value = 0; length = 0; values = []; sum = 0;

Test cases

Test #1

values.forEach(add);

Test #2

for (i = 0; i < values.length; i++) { sum += values[i]; }

Test #3

customForEach(values, add)

Test #4

for (i = values.length - 1; i >= 0; i--) { sum += values[i]; }

Test #5

length = values.length; for (i = 0; i < length; i++) { add(values[i], i, values); }

Test #6

length = values.length; for (i = 0; i < length; i++) { add.call(context, values[i], i, values); }

Test #7

$.each(values, function(key, value) { sum += value; });

Test #8

for (i in values) { sum += values[i]; }

Test #9

for (i = values.length; i--;) { sum += values[i]; }

Test #10

for (i = values.length - 1; i >= 0; --i) { sum += values[i]; }

Test #11

for (i = 0; (value = values[i]) !== undefined; i++) { sum += value; }

Test #12

for (i = values.length - 1; (value = values[i]) !== undefined; i--) { sum += value; }

Test #13

for (i = 0; (value = values[i]) !== undefined; i++) { add(value, i, values); }

Test #14

for (i = 0; (value = values[i]) !== undefined; i++) { add.call(context, value, i, values); }

Test #15

values.forEach(add);

Test #16

values.forEach(function(val) { sum += val; });

Test #17

values.forEach(val = > sum += val);

Test #18

sum = values.reduce((a, b) = > a + b);

Test #19

length = values.length; for (i = 0; i < length; i++) { sum += values[i]; }

Test #20

customForEach2(values, add);

Test #21

length = values.length; for (i = 0; i < length; i++) { add(values[i]); }