Get object keys (v3)

Revision 3 of this benchmark created on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script>
  var theObject = {
    a: 'Some value',
    aa: 'Some value',
    aaa: 'Some value',
    aaaa: 'Some value',
    aaaaa: 'Some value',
    aaaaaa: 'Some value',
    aaaaaaa: 'Some value',
    aaaaaaaa: 'Some value',
    ba: 'Some value',
    bba: 'Some value',
    bbba: 'Some value',
    bbbba: 'Some value',
    bbbbba: 'Some value',
    bbbbbba: 'Some value',
    bbbbbbba: 'Some value',
    bbbbbbbba: 'Some value',
    ca: 'Some value',
    cca: 'Some value',
    ccca: 'Some value',
    cccca: 'Some value',
    ccccca: 'Some value',
    cccccca: 'Some value',
    ccccccca: 'Some value',
    cccccccca: 'Some value',
    cccccccccca: 'Some value',
    da: 'Some value',
    dda: 'Some value',
    ddda: 'Some value',
    dddda: 'Some value',
    ddddda: 'Some value',
    dddddda: 'Some value',
    ddddddda: 'Some value',
    dddddddda: 'Some value',
    ddddddddda: 'Some value',
    dddddddddda: 'Some value',
    ddddddddddda: 'Some value',
    dddddddddddda: 'Some value',
    ea: 'Some value',
    eaa: 'Some value',
    eaaa: 'Some value',
    eaaaa: 'Some value',
    eaaaaa: 'Some value',
    eaaaaaa: 'Some value',
    eaaaaaaa: 'Some value',
    eaaaaaaaa: 'Some value',
    eba: 'Some value',
    ebba: 'Some value',
    ebbba: 'Some value',
    ebbbba: 'Some value',
    ebbbbba: 'Some value',
    ebbbbbba: 'Some value',
    ebbbbbbba: 'Some value',
    ebbbbbbbba: 'Some value',
    eca: 'Some value',
    ecca: 'Some value',
    eccca: 'Some value',
    ecccca: 'Some value',
    eccccca: 'Some value',
    ecccccca: 'Some value',
    eccccccca: 'Some value',
    ecccccccca: 'Some value',
    ecccccccccca: 'Some value',
    eda: 'Some value',
    edda: 'Some value',
    eddda: 'Some value',
    edddda: 'Some value',
    eddddda: 'Some value',
    edddddda: 'Some value',
    eddddddda: 'Some value',
    edddddddda: 'Some value',
    eddddddddda: 'Some value',
    edddddddddda: 'Some value',
    eddddddddddda: 'Some value',
    edddddddddddda: 'Some value'
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
keep track of key
var keys = [];
var i = 0;
for (key in theObject) {
  keys[i] = key;
  i++;
}
ready
array.push
var keys = [];
for (key in theObject) {
  keys.push(key);
}
ready
user length for index
var keys = [];
for (key in theObject) {
  keys[keys.length] = key;
}
ready
use jQuery map
var keys = $.map(theObject, function(value, key) {
  return key;
});
ready
Syntext Change
var i = 0;
var keys = [];
for (key in theObject) {
  keys[i++] = key;
}
ready

Revisions

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