pluck: underscore vs lodash vs custom

Benchmark created on


Preparation HTML

<script src="https://raw.github.com/documentcloud/underscore/master/underscore-min.js"></script>
<script>
var underscore = _.noConflict();
</script>
<script src="https://raw.github.com/bestiejs/lodash/v0.9.2/lodash.min.js"></script>
<script>
var lodash = _.noConflict();
</script>

Setup

var lodash = window.lodash;
    var _ = lodash;
    var underscore = window.underscore;
    var custom = {
      pluck: function (array, property) {
        if (_.isArray(array)) {
          var aLen = array.length;
          var res = new Array(aLen);
          for (var i = 0; i < aLen; i++) {
            res[i] = array[i][property];
          }
          return res;
        } else _.pluck.apply(_, arguments);
      }
    };
    var array = []
    for (var i = 0; i < 100; i++) {
        array.push({a: _.random(100)});
    }

Test runner

Ready to run.

Testing in
TestOps/sec
underscore pluck
underscore.pluck(array, 'a');
ready
lodash map
lodash.map(array, 'a');
ready
lodash pluck
lodash.pluck(array, 'a');
ready
custom pluck
custom.pluck(array, 'a');
ready

Revisions

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