所以我想声明一个包含多个字段的 javascript 数组。
例如,我知道你可以做类似的事情
var data = [
{
"field one": "a",
"field two": "b",
},
{
"field one": "c",
"field two": "d",
}
]
但是,我不知道动态创建这样的数组,这样我就不必在声明时初始化字段。
所以我想声明一个包含多个字段的 javascript 数组。
例如,我知道你可以做类似的事情
var data = [
{
"field one": "a",
"field two": "b",
},
{
"field one": "c",
"field two": "d",
}
]
但是,我不知道动态创建这样的数组,这样我就不必在声明时初始化字段。
您可以使用该方法将值动态添加到数组中push()
。
var data = [];
....
....
data.push({
"field one": "a",
"field two": "b",
})
此外,如果您想动态地将键添加到现有对象,您可以使用[]
语法
var obj = {};
...
obj['field one'] = 'a';
obj['field two'] = 'b';
data.push(obj)
每个单独的数组元素都是一个JavaScript Object。您可以使用点或括号语法创建新字段:
var obj = {};
obj.fieldone = "one";
obj["field two"] = "two";
在您的情况下,由于空格,您必须使用括号表示法。
您可以使用以下方法将新创建的对象插入到数组中.push
:
data.push(obj);
然后,您可以访问各个字段:
data[0]["field one"] == "a";
尝试这个:
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/