2009-07-07 52 views
0

我知道如何創建簡單對象併爲其添加動態屬性。 object = new Object(); object.someproperty =「」;用javascript中的屬性動態創建對象

不過,我有hardtime動態創建這樣的:(在JavaScript)

var datasets = { 
     "usa": { 
      label: "USA", 
      data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]] 
     },   

     "uk": { 
      label: "UK", 
      data: [[1988, 62982], [1989, 62027], [1990, 60696], [1991, 62348], [1992, 58560], [1993, 56393], [1994, 54579], [1995, 50818], [1996, 50554], [1997, 48276], [1998, 47691], [1999, 47529], [2000, 47778], [2001, 48760], [2002, 50949], [2003, 57452], [2004, 60234], [2005, 60076], [2006, 59213]] 
     }, 
    ....................... 
     .............(more...)  
    }; 
+0

你標記你的問題「海軍報」,但從來沒有在你的問題的標題或正文海軍報提及。就此而言,你甚至沒有提出任何問題。你的問題是你不能創建對象嗎?或者你不能用flot來繪製它?我想如果你能更清楚地表達你的問題,你會得到適合你的問題的幫助。 – Nosredna 2009-07-07 21:47:51

回答

3
dataset[country] = {label: countryName, data: theDataObject}; 

var country = 'usa'; 
var countryName = 'USA'; 
var theDataObject = [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]]; 

這是JSON格式。

dataset.usa.label = 'USA'; 

或 dataset.usa.label = countryName; //等

和:

dataset['usa'] 

等於

dataset.usa 

其等於

dataset[country] 

當國家變量是 'USA'。

0

在演示中使用JSON表示法應該有效。這只是一個搞清楚你的​​語法的問題。

的符號,您可以在一條語句創建相當複雜的結構:

var continent = { 
    name: "North America", 
    countries: [ 
    { name: "USA", 
     states: ['AL', 'AK', 'AZ', ... ] 
    }, 
    { name: "Canada", 
     states: ['Ontario', 'Quebec', ... ] 
    }  
    ] 
} 

等。

順便說一句,這也可以讓您使用以下簡寫爲創建空白對象:

var myObj = {};