Array Duplicate Find

Benchmark created on


Setup

var arr = [1, 2, 4, 4, 3, 3, 1, 5, 3];
    
    var dupIndexCheck = function() {
      var dupes = [];
    
      for (var i = 0, len = arr.length; i < len; i++) {
        var val = arr[i];
        if (dupes.indexOf(val) === -1 && arr.indexOf(val) !== arr.lastIndexOf(val)) {
          dupes.push(val);
        }
      }
    
      return dupes;
    }
    
    var dupOccurCount = function() {
      var seen = {};
      var dupes = [];
    
      for (var i = 0, len = arr.length; i < len; i++) {
        seen[arr[i]] = seen[arr[i]] ? seen[arr[i]] + 1 : 1;
      }
    
      for (var item in seen) {
        if (seen.hasOwnProperty(item) && seen[item] > 1) {
          dupes.push(item);
        }
      }
    
      return dupes;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
IndexOf
dupIndexCheck();
ready
countOccur
dupOccurCount();
ready

Revisions

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