Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
is object with keys
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
Browser:
Chrome 122
Operating system:
Windows
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
for in
15161.9 Ops/sec
Object.keys
20370.5 Ops/sec
Script Preparation code:
var obj_empty = {}; var obj_sm = {}; var obj_md = {}; var obj_lg = {}; var obj_xl = {}; for (let i=0; i<10000; i++) { if (i<10) obj_sm[Math.random()] = Math.random(); if (i<50) obj_md[Math.random()] = Math.random(); if (i<1000) obj_lg[Math.random()] = Math.random(); obj_xl[Math.random()] = Math.random(); } var isObject = val => !!val && typeof val === 'object' && val.constructor === Object;
Tests:
for in
const forIn = (o) => { if (!isObject(o)) return false; for (const k in o) if (o.hasOwnProperty(k)) return false; return true; } console.log(forIn(obj_empty)); console.log(forIn(obj_sm)); console.log(forIn(obj_md));
Object.keys
const keys = (o) => isObject(o) && Object.keys(o).length > 0; console.log(keys(obj_empty)); console.log(keys(obj_sm)); console.log(keys(obj_md));