Non, il n’y a pas de prise en charge intégrée pour la création de chaînes. Vous devez utiliser la concaténation à la place.

Vous pouvez bien sûr créer un certain nombre de parties différentes de votre chaîne, puis les invoquer join() sur ce tableau, mais cela dépend alors de la façon dont la jointure est implémentée dans l’interpréteur JavaScript que vous utilisez.

J’ai fait une expérience pour comparer la vitesse de str1+str2 Méthode versus array.push(str1, str2).join() Méthode. Le code était simple:

var iIterations =800000;
var d1 = (new Date()).valueOf();
str1 = "";
for (var i = 0; i<iIterations; i++)
    str1 = str1 + Math.random().toString();
var d2 = (new Date()).valueOf();
log("Time (strings): " + (d2-d1));

var d3 = (new Date()).valueOf();
arr1 = [];
for (var i = 0; i<iIterations; i++)
    arr1.push(Math.random().toString());
var str2 = arr1.join("");
var d4 = (new Date()).valueOf();
log("Time (arrays): " + (d4-d3));

Je l’ai testé dans Internet Explorer 8 et Firefox 3.5.5, tous deux sous Windows 7 x64.

Au début, j’ai testé un petit nombre d’itérations (quelques centaines, quelques milliers d’éléments). Les résultats étaient imprévisibles (parfois il fallait 0 millisecondes pour concaténer les chaînes, parfois 16 millisecondes, il en va de même pour la jonction de tableaux).

Lorsque j’ai augmenté le nombre à 50000, les résultats étaient différents selon les navigateurs – dans Internet Explorer, la concaténation des chaînes était plus rapide (94 millisecondes) et la concaténation était plus lente (125 millisecondes), tandis que dans Firefox, la concaténation des tableaux était plus rapide (113 millisecondes) )) sous forme de chaîne de jonction (117 millisecondes).

Ensuite, j’ai augmenté le nombre à 500 000. Maintenant le array.join() a été plus lent que la concaténation de chaînes Dans les deux navigateurs, la concaténation des chaînes était de 937 ms dans Internet Explorer, 1155 ms dans Firefox, 1265 ms dans Internet Explorer et 1207 ms dans Firefox.

Le nombre maximum d’itérations que j’ai pu tester dans Internet Explorer sans «prendre le script trop longtemps» était de 850 000. Ensuite, Internet Explorer était de 1593 pour la concaténation de chaînes et de 2046 pour la concaténation de tableaux, et Firefox avait 2101 pour la concaténation de chaînes et 2249 pour la concaténation de tableaux.

Résultats – Si le nombre d’itérations est petit, vous pouvez essayer de les utiliser array.join()car il peut être plus rapide dans Firefox. À mesure que le nombre augmente, le string1+string2 La méthode est plus rapide.

METTRE À JOUR

J’ai effectué le test avec Internet Explorer 6 (Windows XP). Le processus s’est arrêté pour répondre immédiatement et ne s’est jamais terminé lorsque j’ai essayé le test sur plus de 100 000 itérations. À 40000 itérations étaient les résultats

Time (strings): 59175 ms
Time (arrays): 220 ms

Cela signifie que si vous devez prendre en charge Internet Explorer 6, choisissez array.join() C’est beaucoup plus rapide que la concaténation de chaînes.



Source link

Recent Posts