Javascript Array Grouping

Benchmark created by Joey on


Description

different methods for grouping string in an array and getting the max value of the grouping.

Preparation HTML

<script>
  var arr = [];
  var day, month, year;
  for(var i = 0; i<10000; i++) {
    day = Math.round(Math.random()*30);
    month = Math.round(Math.random()*12);
    year = Math.round(Math.random()*3 + 2009);
    arr.push(month + "/" + day + "/" + year);
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
nightcracker
var group = {};
var max = 0;
var value;
for (var i = arr.length; --i >= 0;) {
    value = arr[i];
    group[value] = (group[value] | 0) + 1;
}
for (key in group) {
    if (group[key] > max) max = group[key];
}
ready
Mike Samuel
var max = 0;
var group = {};
var value, n, len = arr.length;
for (var i = len; --i >= 0;) {
  value = arr[i];
  n = group[value] = 1 - -(group[value] | 0);
  if (n > max) { max = n; }
}
ready
Original
var max = 0;
var group = {};
arr.map(function (value) {
  if (group[value]) {
    group[value]++;
  } else {
    group[value] = 1;
  }
  max = Math.max(max, group[value]);
});
ready

Revisions

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