Underscore vs. Lodash vs. Lazy.js - filter and find

Benchmark created by Tim on


Preparation HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js">
</script>
<script>var underscore = _.noConflict();</script>
<script src="https://cdn.rawgit.com/dtao/lazy.js/master/lazy.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
<script>var lodash = _.noConflict();</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mori/0.2.9/mori.js" ></script>

Test runner

Ready to run.

Testing in
TestOps/sec
Underscore - filter
var a = underscore.range(10000);
var b = underscore.filter(a, function(n){ return n % 100 == 0; });
var c = b.length;
if (c != 100) throw("bad result");
ready
Lodash - filter
var a = lodash.range(10000);
var b = lodash.filter(a, function(n){ return n % 100 == 0; });
var c = b.length;
if (c != 100) throw("bad result");
ready
Lazyjs - filter
var a = Lazy.range(10000);
var b = a.filter(function (n){ return n % 100 == 0; });
var c = b.size();
if (c != 100) throw("bad result");
ready
Underscore - find
var a = underscore.range(10000);
var b = underscore.find(a, function(n){ return n == 7000; });
if (b != 7000) throw("bad result");
ready
Lodash - find
var a = lodash.range(10000);
var b = lodash.filter(a, function(n){ return n == 7000; });
if (b != 7000) throw("bad result");
ready
Lazyjs - find
var a = Lazy.range(10000);
var b = a.filter(function (n){ return n == 7000; });
if (b != 7000) throw("bad result");
ready

Revisions

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