Maison > interface Web > js tutoriel > Slice ou boucle For en JavaScript : quelle méthode offre une duplication de tableau plus rapide ?

Slice ou boucle For en JavaScript : quelle méthode offre une duplication de tableau plus rapide ?

Susan Sarandon
Libérer: 2024-12-11 13:10:13
original
383 Les gens l'ont consulté

Slice vs. For Loop in JavaScript: Which Method Offers Faster Array Duplication?

Analyse des performances : duplication de tableaux en JavaScript à l'aide de Slice ou de la boucle For

En JavaScript, il existe plusieurs approches pour dupliquer un tableau. Deux méthodes courantes incluent la méthode slice et la boucle for. Cet article explore leurs performances relatives pour déterminer laquelle est la plus rapide.

Méthode Slice :

La méthode slice crée un nouveau tableau en extrayant une partie spécifiée du tableau d'origine. Le code suivant montre un exemple :

1

var dup_array = original_array.slice();

Copier après la connexion

For Loop :

Une boucle for parcourt chaque élément du tableau d'origine et crée manuellement une copie dans un nouveau array :

1

2

for(var i = 0, len = original_array.length; i < len; ++i)

   dup_array[i] = original_array[i];

Copier après la connexion

Résultats :

Les benchmarks ont a révélé que la méthode slice est généralement plus rapide pour les navigateurs basés sur blink, tels que Chrome et Edge, tandis que la boucle for est plus rapide dans d'autres navigateurs, tels que Firefox et Safari. Cela est dû aux optimisations internes pour slice et concat dans les navigateurs Blink.

En particulier, la syntaxe étalée (par exemple, [...original_array]) et Array.from() sont apparues comme les méthodes les plus rapides pour la duplication de tableaux. , surpassant à la fois slice et la boucle for dans la plupart des scénarios.

Benchmark Scripts :

Les scripts JavaScript suivants peuvent être exécutés dans la console du navigateur pour comparer les performances des méthodes de boucle for et slice :

For Loop :

1

2

3

4

5

6

7

n = 1000 * 1000;

start = +new Date();

a = Array(n);

b = Array(n);

i = a.length;

while (i--) b[i] = a[i];

console.log(new Date() - start);

Copier après la connexion

Slice :

1

2

3

4

5

n = 1000 * 1000;

start = +new Date();

a = Array(n);

b = a.slice();

console.log(new Date() - start);

Copier après la connexion

En exécutant ces scripts plusieurs fois, vous pouvez observer les performances relatives de chaque méthode dans différentes conditions de navigateur.

Remarque : N'oubliez pas que ces méthodes n'effectuent qu'une copie superficielle, ce qui signifie que les objets référencés dans l'original le tableau sera partagé avec le tableau en double. Envisagez des techniques de clonage profond pour les structures de données plus complexes.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal