aarontgrogg Array.filter vs for-loop

JavaScript performance comparison

Test case created by Aaron T. Grogg

Info

Comparing the native Array.filter to a loop, based on this article: http://designpepper.com/blog/drips/filtering-arrays-with-array-filter

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var sidekicks = [
        { name: "Robin",     hero: "Batman"   },
        { name: "Supergirl", hero: "Superman" },
        { name: "Oracle",    hero: "Batman"   },
        { name: "Krypto",    hero: "Superman" }
    ];
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
Array.filter
var batKicks = sidekicks.filter(function (el) {
    return (el.hero === "Batman");
});
pending…
for loop
var batKicks = [];

for (var i = 0; i < sidekicks.length ; i++) {
    if (sidekicks[i].hero === "Batman") {
        batKicks.push(sidekicks[i]);
    }
}
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment