How to efficiently count the number of keys/properties of an object in JavaScript?

mjs picture mjs · Sep 24, 2008 · Viewed 718.5k times · Source

What's the fastest way to count the number of keys/properties of an object? It it possible to do this without iterating over the object? i.e. without doing

var count = 0;
for (k in myobj) if (myobj.hasOwnProperty(k)) count++;

(Firefox did provide a magic __count__ property, but this was removed somewhere around version 4.)

Answer

Avi Flax picture Avi Flax · Feb 3, 2011

To do this in any ES5-compatible environment, such as Node, Chrome, IE 9+, Firefox 4+, or Safari 5+:

Object.keys(obj).length