ホームページ  >  記事  >  ウェブフロントエンド  >  Push.applyを使用してJSに配列を追加する問題について array_javascriptスキル

Push.applyを使用してJSに配列を追加する問題について array_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:45:191239ブラウズ

コードをコピー コードは次のとおりです。

a = new Array() ;
b = new Array(125624); 例外



コードをコピー

コードは次のとおりです。 >Uncaught RangeError: 最大呼び出しスタック サイズを超えました配列を b = new Array(125623); に変更すると、テスト後は要素が小さくなっても問題ありません。他のブラウザでも大きな配列に関して問題が発生しますが、ブラウザごとにしきい値が異なります。
http://stackoverflow.com/questions/1374126/how-to-append-an-array-to-an-existing-javascript-array/17368101#17368101 を検索したところ、このような問題に遭遇した人もいることがわかりました。穴:



コードをコピー

コードは次のとおりです。


ここでの提案は、forEach を正直かつ実際的に使用することです。大規模な配列での異常な問題を回避できるだけでなく、パフォーマンスの観点からも forEach が最も高速です。



この小さな穴は私に 2 つの考えを与えました:

1. a.push.apply(a, b) などの一部の派手な使用方法は、面接の質問で使用することもできますが、実際には、異常やパフォーマンスの発生を避けるために、正直な方法を使用する方が良いでしょう。この記事の数十ノードの 3D ネットワーク トポロジのスプリング レイアウトの例は、3D 大容量データのパフォーマンスの例など、非常に大量のデータが発生する場合にのみ使用できます。この記事の HT for Web の問題をテストしていただけますか。

2. http://stackoverflow.com/questions/1374126 stackoverflow から回答を探すときは、最も多くの票を集めたものだけに焦点を当てないでください。多くの場合、真実は少数の人々の手に渡ります。下の写真の 259 票の答えは罠で、34 票の答えは次のとおりです。 これが最も完璧な分析です:

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。