Comparaison de la vitesse de duplication de tableaux en JavaScript : Slice vs. For Loop
En JavaScript, il existe deux méthodes courantes pour créer une copie d'un tableau : la méthode slice et une boucle for. Pour effectuer une analyse approfondie de leurs vitesses respectives, diverses méthodes de duplication ont été comparées, révélant des résultats surprenants.
Mesures de vitesse
Les benchmarks effectués sur différents navigateurs ont montré que la méthode la plus rapide pour dupliquer un tableau dépend du moteur de navigateur utilisé. Pour les navigateurs comme Blink (Chrome, Edge), la méthode slice surpasse généralement la boucle for, la concat étant légèrement plus lente.
Cependant, pour les navigateurs avec des implémentations moins optimisées de slice et concat, comme les anciennes versions de Firefox et Internet Explorer, la méthode de la boucle while apparaît clairement comme la gagnante.
Exemple de code
Ici sont des exemples de scripts que vous pouvez utiliser pour comparer vous-même les méthodes dans la console de votre navigateur :
// While loop method var n = 1000 * 1000; var start = +new Date(); var a = Array(n); var b = Array(n); var i = a.length; while (i--) b[i] = a[i]; console.log(new Date() - start); // Slice method var n = 1000 * 1000; var start = +new Date(); var a = Array(n); var b = a.slice(); console.log(new Date() - start);
Considérations
Il est important de noter que même si les méthodes slice ou for loop dupliquera le tableau lui-même, le contenu du tableau est copié par référence et non profondément cloné. Cela signifie que les modifications apportées à l'un ou l'autre des tableaux seront reflétées dans les deux.
Alors, quelle méthode devriez-vous choisir ? Pour la plupart des navigateurs modernes, la méthode slice est la meilleure option. Toutefois, si vous ciblez des navigateurs plus anciens avec des implémentations JavaScript moins optimisées, la méthode de la boucle for peut être plus performante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!