HTML Preparation code:
x
 
1
2
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
3
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js'></script>
Script Preparation code:
 
var $ = window.$;
var _ = window._;
var myArr = [1, 2, 1, 3, 1, 4];
var longArr = [];
  
for (let i = 0; i < 100000; i++) {
  longArr.push(Math.floor(Math.random() * 100));
}
Tests:
  • jQuery

     
    var result = $.unique( myArr );
    var result2 = $.unique( longArr );
  • Lodash

     
    var result = _.uniq( myArr );
    var result2 = _.uniq( longArr );
  • Flags

     
    var flags = [],
      output = [],
      l = myArr.length,
      i;
    for (i = 0; i < l; i++) {
      if (flags[myArr[i]]) continue;
      flags[myArr[i]] = true;
      output.push(myArr[i]);
    }
    var flags2 = [],
      output2 = [],
      l2 = myArr.length,
      i2;
    for (i2 = 0; i2 < l2; i2++) {
      if (flags2[longArr[i2]]) continue;
      flags2[longArr[i2]] = true;
      output2.push(longArr[i2]);
    }
  • JS Func

     
    var unique = myArr.filter(function (itm, i, a) {
         return i == myArr.indexOf(itm);
          });
    var unique2 = longArr.filter(function (itm, i, a) {
         return i == longArr.indexOf(itm);
          });
  • Set

     
    var unique = [...(new Set(myArr))];
    var unique2 = [...(new Set(longArr))];
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    jQuery
    Lodash
    Flags
    JS Func
    Set

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36
Chrome 79 on Mac OS X 10.15.3
View result in a separate tab
Test name Executions per second
jQuery 298.3 Ops/sec
Lodash 436.1 Ops/sec
Flags 306773.4 Ops/sec
JS Func 44.5 Ops/sec
Set 445.7 Ops/sec