Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
For loop vs For...Of loop 3
(version: 0)
Comparing performance of:
for loop vs for...of loop
Created:
6 years ago
by:
Guest
Jump to the latest result
Tests:
for loop
let operations = [{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},] for (let i=0; i< operations.length; i++) { if (operations[i].foo && operations[i].foo.bar) { operations[i].foo.bar = 'zulu'; console.log(operations[i].foo.bar); } }
for...of loop
let operations = [{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},{foo: {bar:'bar'}},] for (let value of operations) { if (value.foo && value.foo.bar) { value.foo.bar = 'zulu' console.log(value.foo.bar); } }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
for loop
for...of loop
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
Let's dive into the world of JavaScript microbenchmarks! **Benchmark Overview** The benchmark is comparing two approaches to iterate over an array: traditional `for` loops and the newer `for...of` loop syntax. **Options Compared** 1. **Traditional `for` loop**: This approach uses a manual index variable to iterate over the array elements. ```javascript for (let i = 0; i < operations.length; i++) { // ... } ``` 2. **`for...of` loop**: This approach uses the iterator protocol to iterate over the array elements without manually managing an index variable. **Pros and Cons** **Traditional `for` Loop:** Pros: * Well-known and widely supported syntax * Easy to understand for developers familiar with C-style loops Cons: * Requires manual management of the index variable, which can lead to errors or off-by-one issues * May not be as efficient due to the overhead of incrementing the index variable **`for...of` Loop:** Pros: * More concise and expressive syntax * Eliminates the need for manual index management, reducing the risk of errors * Often more efficient due to optimized iteration logic Cons: * Less widely supported or understood by older browsers or developers not familiar with the newer syntax **Library Used (if any)** In this benchmark, no specific library is used. However, if a library were involved, it might be used for additional functionality or optimizations. **Special JS Feature/Syntax** There are no special JavaScript features or syntaxes mentioned in this benchmark. The focus is on the iteration mechanisms themselves. **Other Alternatives** If you'd like to explore alternative approaches, consider the following: * **Array.prototype.forEach()**: This method provides a more concise way to iterate over arrays without manually managing an index variable. ```javascript operations.forEach((value) => { // ... }); ``` * **Async iteration**: For large datasets or performance-critical applications, using async iteration libraries like `p-iterable` or `async-iterator` might provide additional optimizations. Keep in mind that the choice of iteration mechanism ultimately depends on your specific use case, performance requirements, and personal preference.
Related benchmarks:
pow vs for-loop
Array fill foreach, vs for i loop
foreach vs for vs for in
foreach vs for..of
For loop vs <Array>.forEach() vs for...of loop
Comments
Confirm delete:
Do you really want to delete benchmark?