javascript array join vs string concat (v9)

Revision 9 of this benchmark created on


Description

from end to 0.

Setup

var myArray = ['a', 'b', 'c', 'd','f','e','g','h','i','j','k','l','m'];
    
    function fn1() {
        var tmp = [],
            i;
        for (i = myArray.length; i+1; i--) {
            tmp[i] = myArray[i];
        }
        return tmp.join('');
    }
    
    function fn2() {
        var tmp = [],
            i;
        for (i = 0; i<myArray.length; i++) {
            tmp[tmp.length] = myArray[i];
        }
        return tmp.join('');
    }
    
    function fn3() {
        var output = '',
            i;
        for (i = 0; i<myArray.length; i++) {
            output += myArray[i];
        }
        return output;
    }
    
    function fn4() {
        var tmp = [],
            i,
            il;
        for (i = 0, il = myArray.length; i<il; i++) {
            tmp[tmp.length] = myArray[i];
        }
    
        return tmp.join('');
    }
    
    function fn5() {
        var output = '',
            i,
            il;
        for (i = 0, il = myArray.length; i < il; i++) {
          output += myArray[i];
        }
        return output;
    }
    
    function fn6() {
        var tmp = [],
            i;
    
        for (i = myArray.length - 1; i+1; i--) {
            tmp.push(myArray[i]);
        }
    
        return tmp.join('');
    }

Test runner

Ready to run.

Testing in
TestOps/sec
array join (use push)
fn1();
ready
array join (use length)
fn2();
ready
string concat
fn3();
ready
array join (use length) - optimized
fn4();
ready
string concat - optimized
fn5();
ready
array join (use push) - optimized
fn6();
ready

Revisions

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