Objects and iteration

Benchmark created by d4mn on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Setup

var game = {
      results: [{
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2",
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "ec57fb36-7022-45c8-95e5-68dfe80f1526": "2",
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "1"
      }, {
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2",
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "ec57fb36-7022-45c8-95e5-68dfe80f1526": "2"
      }, {
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2",
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2",
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2"
      }, {
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "ec57fb36-7022-45c8-95e5-68dfe80f1526": "2",
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "1"
      }, {
        "ec57fb36-7022-45c8-95e5-68dfe80f1526": "2"
      }, {
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "1",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "ec57fb36-7022-45c8-95e5-68dfe80f1526": "2",
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2"
      }, {
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "ec57fb36-7022-45c8-95e5-68dfe80f1526": "2",
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2",
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2"
      }, {
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2",
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "d17a12de-75a7-4f60-8401-0ba0cfab509c": "2",
        "d0243eb5-0923-4c5b-93ca-08bb6d2f75b6": "2",
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }, {
        "c22a337d-2c02-4394-8ccb-e13dbbe4ea53": "2",
        "23d18156-5065-46bb-8c31-f15420457415": "2"
      }],
      score: {},
      countResult: function(cb) {
        var len = this.results.length - 1,
          _this = this;
        while (len >= 0) {
          var e = this.results[len],
            keys = Object.keys(e),
            olen = keys.length,
            x = 0;
          while (x < olen) {
            var id = keys[x],
              score = e[id];
            _this.score[id] = _this.score[id] !== undefined ? _this.score[id] + parseInt(score) : parseInt(score);
            ++x;
          }
          len--;
        }
        cb();
      },
      getBestScore: function() {
        var rid = null,
          s = 0,
          keys = Object.keys(this.score),
          len = keys.length,
          x = 0;
        while (x < len) {
          var id = keys[x],
            score = this.score[id];
          if (s < score) {
            s = score;
            rid = id;
          }
          ++x;
        }
        return rid;
      },
      getResult: function(rid) {
        var ret = {}, res = gameData.results,
          len = res.length,
          x = 0;
        while (x < len) {
          var r = res[x];
          if (r.id === rid) {
            ret = r;
            break;
          }
          ++x;
        }
        return ret;
      }
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Count
game.countResult(function() {});
ready
Get best score
game.getBestScore();
ready

Revisions

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