如何使用Javascript动态创建数组?

时间:2012-01-15 20:49:27

标签: javascript arrays

我需要根据范围动态创建数组。我有一个req_count变量。我的数组需要始终将前6个点作为null,然后将变量点作为{ "sType": "title-string" }。出于某种原因,我的代码似乎没有起作用。有什么想法吗?

使用Javascript:

var aoColumns = ['null', 'null', 'null', 'null', 'null', 'null']

for (i=0;i<=req_count;i++){

    aoColumns.push('{ "sType": "title-string" }');

}

因此,如果req_count = 5,结果应为:

[   
    null,   
    null,
    null,
    null,
    null, 
    null,                                   
    { "sType": "title-string" },
    { "sType": "title-string" },
    { "sType": "title-string" },
    { "sType": "title-string" },
    { "sType": "title-string" }
],

4 个答案:

答案 0 :(得分:5)

你正在推动字符串,而不是对象:

更改

for (i=0;i<=req_count;i++){
    aoColumns.push('{ "sType": "title-string" }');
}

for (i=0;i<=req_count;i++){
    aoColumns.push({ "sType": "title-string" });  
}

您的初始空值也是如此。你正在推动字符串“null”而不是实际的null。

更改

var aoColumns = ['null', 'null', 'null', 'null', 'null', 'null']

var aoColumns = [null, null, null, null, null, null];

答案 1 :(得分:2)

var aoColumns = ['null', 'null', 'null', 'null', 'null', 'null']

应该是

var aoColumns = [null, null, null, null, null, null]

aoColumns.push('{ "sType": "title-string" }');

应该是

aoColumns.push({ "sType": "title-string" });

答案 2 :(得分:1)

字符串不是javascript中的唯一类型;)。 'null'应为null

aoColumns.push('{ "sType": "title-string" }');

应该是

aoColumns.push({ "sType": "title-string" });

答案 3 :(得分:1)

从推送内部删除引号...将实际对象推入其中,而不是字符串。

例如:

aoColumns.push({ "sType": "title-string" });

而不是

aoColumns.push('{ "sType": "title-string" }');