所以我想声明一个包含多个字段的javascript数组。
例如,我知道你可以做类似
的事情var data = [
{
"field one": "a",
"field two": "b",
},
{
"field one": "c",
"field two": "d",
}
]
但是,我不知道要动态创建这样的数组,以便我不必在声明时初始化字段。
答案 0 :(得分:6)
您可以使用push()
方法将值动态添加到数组中。
var data = [];
....
....
data.push({
"field one": "a",
"field two": "b",
})
此外,如果要动态地向现有对象添加键,可以使用[]
语法
var obj = {};
...
obj['field one'] = 'a';
obj['field two'] = 'b';
data.push(obj)
答案 1 :(得分:3)
每个单独的数组元素都是JavaScript Object。您可以使用点或括号语法创建新字段:
var obj = {};
obj.fieldone = "one";
obj["field two"] = "two";
在您的情况下,由于空间的原因,您必须使用括号表示法。
您可以使用.push
:
data.push(obj);
然后,您可以访问各个字段:
data[0]["field one"] == "a";
答案 2 :(得分:1)
试试这个:
var data = [];
var fields = ["one", "two"];
var length = fields.length;
var char = 97; // a
for (var i = 0; i < 2; i++) {
var object = {};
for (var j = 0; j < length; j++) {
object["field " + fields[j]] = String.fromCharCode(char++);
}
data.push(object);
}
请参阅此处的演示:http://jsfiddle.net/yqg3D/