CoffeeScript array comprehensions

Benchmark created by poxu on


Setup

var list = [];
    for(var i=0;i<10000;i++) list.push(i);
    var cube = function(x) {
        return x*x*x;
    };

Test runner

Ready to run.

Testing in
TestOps/sec
CS cubes
var cubesSugar = (function() {
    return function(array) {
        var i, len, results;
        results = [];
        for (i = 0, len = array.length; i < len; i++) {
            var num = array[i];
            results.push(cube(num));
        }
        return results;
    };
}());

cubesSugar(list);
ready
js cubes
var cubesLambda = (function() {
    return function(array) {
        return array.map(cube);
    };
}());
cubesLambda(list);
ready
js lambda with push
var totallyHonestCubesLambda = (function() {
    return function(array) {
        return array.reduce(function(result, curr) {
            result.push(cube(curr));
            return result;
        }, []);
    };
}());
totallyHonestCubesLambda(list);
ready
js lambda with push
var honestCubesLambda = (function() {
    return function(array) {
        return array.reduce(function(prev, curr) {
            return prev.concat(cube(curr));
        }, []);
    };
}());
honestCubesLambda(list);
ready

Revisions

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