groupBy-nested: angular-filter vs lodash

Benchmark created by Ariel Mashraki on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.4.8/angular-filter.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>

Setup

var players = [{
          name: 'Gene',
          team: { name: 'alpha' }
        }, {
          name: 'George',
          team: { name: 'beta' }
        }, {
          name: 'Steve',
          team: { name: 'alpha' }
        }, {
          name: 'Paula',
          team: { name: 'beta' }
        }, {
          name: 'Scruath',
          team: { name: 'gamma' }
        }];

Test runner

Ready to run.

Testing in
TestOps/sec
angular-filter
angular.module('app', ['angular.filter'])
  .controller('appCtrl', function($scope, $filter) {
    $scope.res = $filter('groupBy')(players, 'team')
  })
ready
lodash-filter
angular.module('app', [])
  .controller('appCtrl', function($scope, $filter) {
    $scope.res = $filter('groupBy')(players, 'team')
  })
  .filter('groupBy', function($parse) {
    return function(input, key) {
      return _.groupBy(input, function(elm) {
        return $parse(key)(elm)
      });
    }
  })
ready

Revisions

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

  • Revision 1: published by Ariel Mashraki on