69 votes

Array Join vs String Concat

Quelle méthode est la plus rapide ?

Joindre un tableau :

 var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");

var output=myarray.join("");

Concat de chaîne :

 var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");

var output = "";
for (var i = 0, len = myarray.length; i<len; i++){
    output += myarray[i];
}

47voto

AlienWebguy Points 42370

La concaténation des chaînes est plus rapide dans ECMAScript. Voici un benchmark que j'ai créé pour vous montrer :

http://jsben.ch/#/OJ3vo

10voto

user1102051 Points 152

De 2011 à nos jours...

Voir la join utilisant la concaténation de chaînes, et combien elle est plus lente que l'implémentation standard.

 // Number of times the standard `join` is faster, by Node.js versions:
// 0.10.44: ~2.0
// 0.11.16: ~4.6
// 0.12.13: ~4.7
// 4.4.4: ~4.66
// 5.11.0: ~4.75
// 6.1.0: Negative ~1.2 (something is wrong with 6.x at the moment)
function join(sep) {
    var res = '';
    if (this.length) {
        res += this[0];
        for (var i = 1; i < this.length; i++) {
            res += sep + this[i];
        }
    }
    return res;
}

La morale est - ne concaténez pas les chaînes manuellement, utilisez toujours le standard join .

9voto

Ryan Doherty Points 16448

Je peux certainement dire qu'utiliser Array.join() est plus rapide. J'ai travaillé sur quelques morceaux de code JavaScript et j'ai considérablement accéléré les performances en supprimant la manipulation de chaînes au profit de tableaux.

3voto

Lin Points 661

Ça dépend:

Chrome 79.0.3945

Array Join est 30% plus lent

Firefox 71.0.0

String Concat est 90% plus lent

https://jsperf.com/lin-array-join-vs-string-concat

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X