我在带有80000个元素的javascript中创建Array() 喜欢
var arrRecWorkOrderNo = Array(1,2,3,,,,,,,,,,,,80000);
但遗憾的是我得到了一个错误: 未捕获的SyntaxError:函数调用中的参数太多(仅允许32766)
我该如何解决?
答案 0 :(得分:7)
请勿使用Array
,只需将其定义为:
var arrRecWorkOrderNo = [1,2,3,,,,,,,,,,,,80000];
当你将它作为参数添加到构造函数时,Javascript的限制为32766(签名为简短)。
答案 1 :(得分:0)
不要使用Array
构造函数,请参阅Ken的答案以了解正确的用法。使用参数调用时,数组构造函数具有奇怪的行为。
但是,如果你需要在一个函数中有超过 32766 个参数(实际上没有任何借口),你可以这样做:
var a = Array.apply(null, [1,,,,,,,,,,,,,,80000];
apply
函数将第一个参数设置为this
个对象,将第二个参数设置为arguments
。
注意:这只是一个概念证明,没有人应该拥有那么多参数,只需接受一个数组。