La copie de code est la suivante:
a = nouveau array ();
b = nouveau tableau (125624);
a.push.apply (a, b);
Le code ci-dessus jette l'exception suivante sous Mac Chrome
La copie de code est la suivante:
Rangeror non cinglé: la taille maximale de la pile d'appels dépassée
Si vous modifiez le tableau en b = nouveau tableau (125623); Ce serait génial si vous avez un élément plus petit. J'ai testé que d'autres navigateurs ont également des problèmes avec de grands tableaux, mais les valeurs critiques des différents navigateurs sont toujours différentes.
J'ai recherché http://stackoverflow.com/questions/1374126/how-to-append-an-array-to-an-existing-javascript-array/17368101#17368101 et j'ai trouvé que quelqu'un a rencontré une telle pointe:
La copie de code est la suivante:
Array.prototype.extend = fonction (autre_array) {
/ * Vous devez inclure un test pour vérifier si d'autres_array est vraiment un tableau * /
autres_array.ForEach (fonction (v) {this.push (v)}, this);
}
Les suggestions présentées sont pour être honnêtes et pratiques Forach, qui peuvent non seulement éviter les problèmes d'exception des grandes tableaux, mais également considérer les performances de Foreach comme le plus rapide
Cette petite fosse m'a donné deux pensées:
1. Certains usages de fantaisie tels que A.Push.Apply (A, B); Il suffit d'être utilisé pour se montrer lors des questions d'entrevue. Dans la pratique, il est préférable de prendre la voie honnête pour éviter de rencontrer des anomalies et des pièges de performance. Par exemple, un petit nombre d'exemples de mise en page à ressort de la topologie du réseau 3D avec des dizaines de nœuds dans cet article est bien. Ce n'est que lorsque vous rencontrez de vrais volumes de big data, tels que HT pour les exemples de performances Web dans cet article, que vous pouvez tester le problème.
2. Http://stackoverflow.com/questions/1374126 Lorsque vous cherchez des réponses de Stackoverflow, ne vous concentrez pas seulement sur celles qui votent le plus. La vérité est souvent entre les mains de quelques personnes. La réponse avec 259 voix dans la figure ci-dessous est une fosse, et 34 voix sont l'analyse la plus parfaite: