Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
for-in vs object.keys4112
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:
one year ago
Test name
Executions per second
for-in
75.2 Ops/sec
Object.keys
70.5 Ops/sec
Script Preparation code:
var obj = { item1: { isTexture: true }, item2: { isTexture: false }, item3: { isTexture: true }, item4: { isTexture: false }, item5: { isTexture: true }, item6: { isTexture: false }, item7: { isTexture: true }, item8: { isTexture: true }, item9: { isTexture: false }, item10: { isTexture: true }, item11: { isTexture: false }, item12: { isTexture: true }, item13: { isTexture: false }, item14: { isTexture: true }, item11: { isTexture: true }, item21: { isTexture: false }, item31: { isTexture: true }, item41: { isTexture: false }, item51: { isTexture: true }, item61: { isTexture: false }, item71: { isTexture: true }, item81: { isTexture: true }, item91: { isTexture: false }, item101: { isTexture: true }, item111: { isTexture: false }, item121: { isTexture: true }, item131: { isTexture: false }, item141: { isTexture: true } };
Tests:
for-in
for (var i=10000; i > 0; i--) { let texturesForIn = []; for (const key in obj) { const value = obj[key]; if (value && value.isTexture) { texturesForIn.push(value); } } }
Object.keys
for (var i=10000; i > 0; i--) { let texturesObjectKeys = []; const keys = Object.keys(obj); for (let i = 0; i < keys.length; i++) { const key = keys[i]; const value = obj[key]; if (value && value.isTexture) { texturesObjectKeys.push(value); } } }