userOptions loop (v6)

Revision 6 of this benchmark created by Mark on


Setup

var userOptions = ['confine', 'peek', 'syncwait', 'local'];
    var options = {peek:true, p:true};
    var userObj = {confine: true, peek: true, syncwait: true, local: true}

Test runner

Ready to run.

Testing in
TestOps/sec
loop array
var ret = {};
for(var i = 0;i < userOptions.length;i++) {
  if(userOptions[i] in options) ret[userOptions[i]] = options[userOptions[i]];
}
a = ret;
 
ready
options object
var ret = {};
for(var key in options) {
  if(userOptions.indexOf(key) > -1) ret[key] = options[key];
}
a = ret;
ready
options object keys
var ret = {};
var keys = Object.keys(options);
for(var i = 0; i < keys.length; ++i) {
  if(keys[i] in userOptions) ret[keys[i]] = options[keys[i]];
}
a = ret;
ready
Options with obj
var ret = {};
for(var key in options) {
  if(userObj[key]) ret[key] = options[key];
}
a = ret;
ready
obj with object keys
var ret = {};
var keys = Object.keys(options);
for(var i = 0; i < keys.length; ++i) {
  if(userObj[keys[i]]) ret[keys[i]] = options[keys[i]];
}
a = ret;
ready

Revisions

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

  • Revision 1: published by Mark on
  • Revision 2: published by Mark on
  • Revision 3: published by Mark on
  • Revision 4: published by Mark on
  • Revision 5: published by Mark on
  • Revision 6: published by Mark on