2

我正在用 80000 个元素在 javascript 中创建 Array() 喜欢

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

但不幸的是,我收到一个错误:Uncaught SyntaxError: Too many arguments in function call (only 32766 allowed)

我该如何解决?

4

2 回答 2

7

不要使用Array,只需将其定义为:

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

当您将其作为构造函数的参数时,Javascript 的限制为 32766(有符号短)。

于 2013-06-20T05:50:54.657 回答
0

不要使用Array构造函数,请参阅 Ken 的正确用法答案。使用参数调用时,数组构造函数有奇怪的行为。

但是,如果您需要在一个函数中包含超过32766 个参数(真的没有任何借口),您可以执行以下操作:

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

apply函数将第一个参数设置为this对象,将第二个参数设置为arguments.

注意:这只是一个概念证明,没有人应该有那么多参数,只接受一个数组。

于 2013-06-20T05:57:37.623 回答