aa (v2)

Revision 2 of this benchmark created on


Preparation HTML

<script>
Array.prototype.arrayCountFormat = function () {
  var compressed = []
  var copy = this.slice(0)
  for (var i = 0; i < this.length; i++) {
    var myCount = 0
    for (var w = 0; w < copy.length; w++) {
      if (this[i] == copy[w]) {
        myCount++
        delete copy[w]
      }
    }

    if (myCount > 0) {
      var a = new Object()
      a.value = this[i]
      a.count = myCount
      compressed.push(a)
    }
  }

  return compressed
}

Array.prototype.countValues = function () {
  var countedValues = {};
  for (var i = 0; i < this.length; i++) {
    countedValues[this[i]] = (countedValues[this[i]] ?? 0) + 1;
  }
  return countedValues;
}

let input = ["abc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc", "def", "ghi", "jack", "abc", "lala", "def", "waa", "lala", "jack", "etc"];

</script>

Test runner

Ready to run.

Testing in
TestOps/sec
1
input.countValues();
ready
2
input.arrayCountFormat();
ready

Revisions

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