filter versus dictionary (v11)

Revision 11 of this benchmark created on


Setup

var array = [{
      "name": "Joe",
      "age": 17
    }, {
      "name": "Bob",
      "age": 17
    }, {
      "name": "Carl",
      "age": 35
    }];

Test runner

Ready to run.

Testing in
TestOps/sec
map
var ages = array.map(function(obj) {
  return obj.age;
});
ages = ages.filter(function(v, i) {
  return ages.indexOf(v) == i;
});
ready
dictionary
var unique = {};
var distinct = [];
for (var i in array) {
  if (typeof(unique[array[i].age]) == "undefined") {
    distinct.push(array[i].age);
  }
  unique[array[i].age] = 0;
}
ready
for loop inline assignment
var unique = {};
var distinct = [];
for (var i = 0, entitytype; entitytype = array[i++];) {

  if (typeof(unique[entitytype.age]) == "undefined") {
    distinct.push(entitytype.age);
  }
  unique[entitytype.age] = 0;
}
ready

Revisions

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