There are many ways to traverse an array in JavaScript. In this benchmark, we will look at five different ways and the pros and cons of each. Keep in mind that these benchmarks were run in a Chrome browser on . Results will vary by browser/interpreter. Codepen For a working example of these benchmarks, take a look at this codepen: All benchmarks we ran on an array of 1000000000 items. 1st: Vanilla JS - Backwards ( i = arr.length ; i>= ; i--){} for let -1 0 ~ 30 milliseconds Going than going forward! This is because at each iteration the loop checks against a constant 0 zero value instead of calling the array's property. Doesn't mean you should do it though... its weird and hard to follow cognitively. backwards is faster .length 2nd: Vanilla JS - Forwards ( i = ; i< arr.length; i++){} for let 0 ~39 milliseconds 3rd: ES6 forEach() arr.forEach( {}); ( ) function element ~180 milliseconds Slow but with a more convenient syntax, nothing surprising here. 4th: jQuery Each $.each(arr, {}); ( ) function index, value ~225 milliseconds Eeeeeew... jQuery. Convenient if you live in 2010. Very Slow. Wildcard: For..Of ES6 ( item arr){} for const of First and second time running: 153 Milliseconds Third+ times running : ~18 milliseconds This is weird, and I'm not sure how to explain it. Maybe someone smarter than me can tweet me the answer . The first two times running this after a fresh browser load are quite slow, but then it gets blazingly fast. I'm assuming there are some es6 optimizations under the hood that kick in. @wagslane Subscribe to Qvault: https://qvault.io