2014-02-27 39 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 }]);