Count elements in object (v5)

Revision 5 of this benchmark created on


Preparation HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js"></script>

Setup

var o = {};
    var o2 = {};
    var o3 = {};
    var o4 = {};
    var o5 = {};
    
    for (var i = 0; i < 1000; ++i)
       o[i] = true;
    for (var i = 0; i < 20; ++i)
       o3[i] = true;
    for (var i = 0; i < 100; ++i)
       o4[i] = true;
    for (var i = 0; i < 2; ++i)
       o5[i] = true;

Test runner

Ready to run.

Testing in
TestOps/sec
Object.keys
var l = Object.keys(o).length;
ready
loop
var l = 0;
for (k in o) {
  if (o.hasOwnProperty(k)) l++;
}
 
ready
loop 2
var l = 0;
for (k in o) l++;
 
ready
underscore
var l = _.size(o);
ready
cached
var l = o.__count__;
if (l == undefined) {
   l = Object.keys(o).length;
   Object.defineProperty(o, '__count__', {value: l})
   console.log('cached: ' + l);
}
ready
Object.keys on last position
var l = Object.keys(o).length;
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.