2014-02-27 37 views
1

我想定义类似于以下对象结构的东西,所以我可以从多个来源填充它。我需要什么声明来定义它?如何在JavaScript中定义对象变量结构?

Offices[]是一个开放式数组,其下是rel[]。所有的元素都是字符串或数字。

Offices.name 
Offices.desc 
Offices.rel.type 
Offices.rel.pt 
+3

那么你可能想从关于基本JavaScript语法的参考开始。 – Pointy

回答

8

首先我会做Offices数组:

var Offices = []; 

然后填充与对象:

var obj = { 
    name: "test", 
    desc: "Some description", 
    rel: [] 
} 

Offices.push(obj); 

现在,你有你的填充一个对象数组(Offices),所以你可以通过Offices[0].desc访问它 - 您也可以使用Offices[0].rel.push(anotherObj)填充rel阵列

2

如果我理解正确,您希望将多个相同类型的对象放置在Offices数组中。为了便于建立多个相同类型的对象,你可以使用一个构造函数:

function Office(name, desc, rel){ 
    this.name = name; 
    this.desc = desc; 
    this.rel = rel; 
} 

现在,你可以声明一个数组来保存上述类型的实例:

var offices = []; 

,你可以添加新像这样的实例:

offices.push(new Office('John', 'good guy', [])); 

可以应用同样的想法的相对阵列执行的对象的结构,或简单地使用对象和数组文本:

offices.push(new Office('John', 'good guy', [{ type : 'M', pt : 3 }, { type : 'Q', pt : 2 }]);