2

私は 80000 要素の JavaScript で Array() を作成しています

var arrRecWorkOrderNo = Array(1,2,3,,,,,,,,,,,,80000);

しかし、残念ながらエラーが発生しています: Uncaught SyntaxError: 関数呼び出しで引数が多すぎます (32766 のみ許可されています)

どうすれば解決できますか?

4

2 に答える 2

7

を使用しないでくださいArray。次のように定義してください。

var arrRecWorkOrderNo = [1,2,3,,,,,,,,,,,,80000];

Javascript をコンストラクターの引数として指定する場合、Javascript には 32766 (signed short) の制限があります。

于 2013-06-20T05:50:54.657 に答える
0

コンストラクターを使用しないArrayでください。適切な使用法については、ケンの回答を参照してください。配列コンストラクターは、引数を指定して呼び出すと奇妙な動作をします。

ただし、関数に32766 個を超える引数が必要な場合 (実際には言い訳の余地はありません)、次のようにします。

var a = Array.apply(null, [1,,,,,,,,,,,,,,80000];

apply関数は、最初のパラメーターをthisオブジェクトとして設定し、2 番目のパラメーターを として設定しますarguments

注: これは概念実証にすぎません。これほど多くのパラメーターを指定する必要はありません。配列を受け入れるだけです。

于 2013-06-20T05:57:37.623 に答える