Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
for-in vs object.keys vs object.values vs for loop for objects
(version: 1)
Comparing performance of:
for-in vs Object.keys vs Object.values vs for loop
Created:
10 months ago
by:
Guest
Jump to the latest result
Script Preparation code:
var obj = { 'a': { id: 'a', num: 1 }, 'b': { id: 'b', num: 1 }, 'c': { id: 'c', num: 1 }, 'd': { id: 'd', num: 1 }, 'e': { id: 'e', num: 1 }, 'f': { id: 'f', num: 1 }, 'g': { id: 'g', num: 1 }, };
Tests:
for-in
for (var i=10000; i > 0; i--) { for (var key in obj) { console.log(obj[key].id); } }
Object.keys
for (var i=10000; i > 0; i--) { Object.keys(obj).forEach(key => console.log(obj[key].id)); }
Object.values
for (var i=10000; i > 0; i--) { Object.values(obj).forEach(n => console.log(n.id)); }
for loop
for (var i=10000; i > 0; i--) { const keys = Object.keys(obj) for (let j = 0; j < keys.length; j++) { console.log(obj[keys[j]].id); } }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (4)
Previous results
Fork
Test case name
Result
for-in
Object.keys
Object.values
for loop
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
10 months ago
)
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:139.0) Gecko/20100101 Firefox/139.0
Browser/OS:
Firefox 139 on Windows
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
for-in
4.3 Ops/sec
Object.keys
4.1 Ops/sec
Object.values
4.3 Ops/sec
for loop
4.3 Ops/sec
Related benchmarks:
for-in vs object.keys vs object.values for objects
for-in vs object.values for objects
for-in vs object.keys vs object.values for objects v2
for-in vs object.keys vs object.values for objects test
for-in vs object.keys vs object.values for objects vs arr
for-in vs object.keys vs object.values for objects - output object values
for-in vs object.keys vs object.values for objects 2.0
Yet Another Object.keys vs Object.values
eq vs object.keys vs object.values for objects
Comments
Confirm delete:
Do you really want to delete benchmark?