Maison  >  Article  >  interface Web  >  Introduction détaillée à la méthode de création de tableaux par lots en JavaScript (image)

Introduction détaillée à la méthode de création de tableaux par lots en JavaScript (image)

黄舟
黄舟original
2017-03-22 14:30:141704parcourir

JavaScriptIl existe de nombreuses façons de créer des tableaux par lots Afin de mesurer leurs performances, j'ai utilisé différentes méthodes pour créer un tableau d'une longueur de 100 000, et les clés et les valeurs sont égales. . Aujourd'hui, je vais partager avec vous Jetons un coup d'œil aux méthodes de création de tableaux par lots basées sur js

Javascript dispose de nombreuses méthodes de création de tableaux par lots afin de mesurer leurs performances. , j'ai utilisé différentes méthodes pour créer un tableau d'une longueur de 100 000. Un tableau avec des clés et des valeurs égales. En même temps, j'ai défini la fonction suivante pour mesurer le temps nécessaire pour créer un tableau :

 function t(fn) {
   var start = Date.now();
   fn.call(this);
   var end = Date.now();
   return (end - start) + 'ms';
}

Voici plusieurs méthodes couramment utilisées pour créer des tableaux et le temps qu'elles prendre :

Utiliser join et split

Cette méthode passe beaucoup de temps sur l'opération map , supprimez-le Cela ne prend que 2 ms après la carte

Utilisez appliquer

Voici un { length: 100000} Pseudo-tableau, NodeList et les arguments sont des pseudo-tableaux (array-like object Ce ne sont pas des tableaux au vrai sens du terme, mais avec). Un objet qui a "lengthattribut" et qui a également "indexattribut" ne peut pas utiliser directement les méthodes du tableau, mais apply et call peuvent accepter ce pseudo tableau. Le Array.prototype.slice(arguments) que nous utilisons habituellement est basé sur ce principe.

Ici, un pseudo-tableau de longueur 100 000 est transmis à la fonction Array, un tableau de longueur 100 000 est construit, puis une carte est utilisée pour attribuer la valeur. Certains étudiants peuvent se demander pourquoi ne pas utiliser directement Array(100000) pour générer un tableau ? En effet, chaque valeur du tableau généré via Array(100000) n'est pas définie et ne peut pas être parcourue via la carte.

Utiliser Array.from()

Il s'agit d'une nouvelle méthode dans ES6, qui peut convertir directement des pseudo-tableaux en tableaux

Si vous remplacez le pseudo-tableau par un tableau, la vitesse diminuera beaucoup.

Utilisez Array.fill()

Remplissez d'abord le tableau avec Array.fill(), puis attribuez des valeurs un par un à travers la carte

Utiliser une boucle for

J'ai dit que j'étais choqué à ce moment-là et je continue de réfléchir. Vérifiez s'il y a moins de 0. Je ne suis pas satisfait et je veux l'essayer avec push

J'ai trouvé que push est également très rapide.. .

Après comparaison, j'ai trouvé que l'affectation directe de la boucle for originale est la plus rapide et que les autres méthodes sont toutes à peu près à la même vitesse.

Mais la boucle for est vraiment difficile à écrire. Il faut trois phrases pour faire quelque chose qui peut être fait en une seule phrase.

Donc, s'il n'y a pas de grandes exigences en matière de performances (après tout, il n'y aura pas un tableau aussi grand que 100 000 en développement réel), il est plus pratique d'utiliser apply et Array.from.

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!

Déclaration:
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