Fast way to concatenate strings in nodeJS/JavaScript


Question

I understand that doing something like

var a = "hello";
a += " world";

It is relatively very slow, as the browser does that in O(n) . Is there a faster way of doing so without installing new libraries?

1
50
12/13/2012 12:11:47 PM

Accepted Answer

This is the fastest way known to join strings together in javascript.

For more details, see:

Why is string concatenation faster than array join?

JavaScript: How to join / combine two arrays to concatenate into one array?

37
5/23/2017 12:10:33 PM

The question is already answered, however when I first saw it I thought of NodeJS Buffer. But it is way slower than the +, so it is likely that nothing can be faster than + in string concetanation.

Tested with the following code:

function a(){
    var s = "hello";
    var p = "world";
    s = s + p;
    return s;
}

function b(){
    var s = new Buffer("hello");
    var p = new Buffer("world");
    s = Buffer.concat([s,p]);
    return s;
}

var times = 100000;

var t1 = new Date();
for( var i = 0; i < times; i++){
    a();
}

var t2 = new Date();
console.log("Normal took: " + (t2-t1) + " ms.");
for ( var i = 0; i < times; i++){
    b();
}

var t3 = new Date();

console.log("Buffer took: " + (t3-t2) + " ms.");

Output:

Normal took: 4 ms.
Buffer took: 458 ms.

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon