我想定义类似下面的对象结构,所以我可以从许多来源填充它。我需要用什么语句来定义它?
Offices[]
是一个开放式数组,其下方是rel[]
。所有元素都是字符串或数字。
Offices.name
Offices.desc
Offices.rel.type
Offices.rel.pt
答案 0 :(得分:11)
首先我要使Offices
成为一个数组:
var Offices = [];
然后用对象填充它:
var obj = {
name: "test",
desc: "Some description",
rel: []
}
Offices.push(obj);
现在您的阵列(Offices
)填充了一个对象,因此您可以通过Offices[0].desc
访问它 - 您还可以使用rel
填充Offices[0].rel.push(anotherObj)
数组
答案 1 :(得分:3)
如果我理解正确,您希望在Offices数组中放置多个相同类型的对象。为了轻松构建相同类型的多个对象,您可以使用构造函数:
function Office(name, desc, rel){
this.name = name;
this.desc = desc;
this.rel = rel;
}
现在您可以声明一个数组来保存上述类型的实例:
var offices = [];
你可以添加这样的新实例:
offices.push(new Office('John', 'good guy', []));
您可以将相同的想法应用于rel数组以强制执行对象的结构,或者只使用对象和数组文字:
offices.push(new Office('John', 'good guy', [{ type : 'M', pt : 3 }, { type : 'Q', pt : 2 }]);