2010-09-12 126 views
6

我试图从外部javascript中导入一组坐标。 我必须在构造函数中包含大约78.740个元素,但firefox只是抛出一个错误:
“太多的构造函数参数”
有没有人有任何想法?javascript太多的构造函数参数

这是我的代码:

 
function CreateArray() { 
return new Array(
... 
... 
... 
78.740 elements later 
... 
); } 
+0

虽然它们的存在,从来不使用数组或对象的构造,使用的文字在“新的磁盘阵列/对象” 。 – BGerrissen 2010-09-12 11:48:16

+1

+1代码示例中的LOL – 2010-09-12 12:13:00

+1

BGerrissen:这有点教条。我同意文字通常是可取的,但有时候'Array'构造函数是有用的。例如:'var hugeString = new Array(1e6).join(“x”);' – 2010-09-12 15:15:07

回答

9

尝试数组文本,它为我工作(成功测试了万件):

function CreateArray() { 
    return [ 
     ... 
    ]; 
} 
+0

Gah,我输入太慢。 :-) – 2010-09-12 11:34:34

+1

+1附注,最大阵列长度是4,294,967,295,但怀疑任何人会达到那个^^ – BGerrissen 2010-09-12 11:44:47

+1

与2,000,000项Firefox引发异常“脚本堆栈空间配额已用尽” – pepkin88 2010-09-12 11:51:06

1

可能是运行内存的限制,不能肯定。

如何尝试推送()到一个数组的值,而不是一次全部初始化它们?将其分成更小的数据块以添加到数组中,而不是将其全部添加到一个命令中。

var a = []; 
a.push(1,2,3,4,5,6,7,8,9,10); 
a.push(1,2,3,4,5,6,7,8,9,10); 
a.push(1,2,3,4,5,6,7,8,9,10); 
a.push(1,2,3,4,5,6,7,8,9,10); 
// etc... 
return a;