Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
for-of vs forEach (a)
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
Browser:
Chrome 124
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
test 1
3442.1 Ops/sec
test 2
3376.6 Ops/sec
HTML Preparation code:
<script> var _obj = (() => { const obj = {}; for (let i = 0; i < 800; i++) { let c = Math.random(); const t = Math.random() * 1000001531; obj[Math.random().toString().substring(2)] = c < 0.3 ? [t % 211, t % 521, t % 809] : c > 0.6 ? { x: t % 373, y: t % 499, z: t % 1049 } : new Function(`console.log(${Math.random()})`); } return obj; })() </script>
Tests:
test 1
const obj = _obj; let c=0; for(const k of Object.keys(obj)){ c+=(typeof obj[k] === 'function')*2; } for(const k of Object.keys(obj)){ c+=(typeof obj[k] === 'object')*3; } for(const k of Object.keys(obj)){ c+=(typeof obj[k]).length; } for(const k of Object.keys(obj)){ c+=(k).length; } for(const k of Object.keys(obj)){ c+=(typeof obj[k] === 'function')*2; } for(const k of Object.keys(obj)){ c+=(typeof obj[k] === 'object')*3; } for(const k of Object.keys(obj)){ c+=(typeof obj[k]).length; } for(const k of Object.keys(obj)){ c+=(k).length; } for(const k of Object.keys(obj)){ c+=(typeof obj[k] === 'function')*2; } for(const k of Object.keys(obj)){ c+=(typeof obj[k] === 'object')*3; } for(const k of Object.keys(obj)){ c+=(typeof obj[k]).length; } for(const k of Object.keys(obj)){ c+=(k).length; } window.tmp_r1 = c;
test 2
const obj = _obj; let c=0; Object.keys(obj).forEach(k=>{ c+=(typeof obj[k] === 'function')*2; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k] === 'object')*3; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k]).length; }); Object.keys(obj).forEach(k=>{ c+=(k).length; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k] === 'function')*2; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k] === 'object')*3; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k]).length; }); Object.keys(obj).forEach(k=>{ c+=(k).length; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k] === 'function')*2; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k] === 'object')*3; }); Object.keys(obj).forEach(k=>{ c+=(typeof obj[k]).length; }); Object.keys(obj).forEach(k=>{ c+=(k).length; }); window.tmp_r2 = c;