HTML Preparation code:
AخA
 
1
<script>https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.core.js</script>
Script Preparation code:
 
var data = [{a: 1}, {a: 2}, {a: 3}, {a: 4}, {a: 5}, {a: 6}, {a: 7}, {a: 8}, {a: 1}];
Tests:
  • lodash

     
    _.uniqBy(data, 'a');
  • javascript

    x
     
    const sortBy = (key) => {
        return (a, b) => (a[key] > b[key]) ? 1 : (b[key] > a[key] ? -1 : 0);
    };
    const uniqBy = (arr, a) => {
       arr.sort(sortBy(a));
       const arr1 = [];
       arr1.push(arr[0]);
       for (let index = 1; index < arr.length; index++) {
           if (arr[index-1] && arr[index -1].a !== arr[index].a) {
               arr1.push(arr[index]);
           }
       }
       return arr1;
    }
    uniqBy(data, 'a')
  • native

     
    function uniqueBy(arr, prop){
      const record = []
      const seen = {}
      for (let i = 0, len = arr.length; i < len; ++i) { // Notice the len = arr.length
        const item = arr[i]
        const val = item[prop]
        if (!seen[val]) {
          seen[val] = 1
          record.push(item)
        }
      }
    }
    uniqueBy(data, 'a')
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    lodash
    javascript
    native

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 days ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Chrome 133 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
lodash 10302855.0 Ops/sec
javascript 6813315.5 Ops/sec
native 8606958.0 Ops/sec