2009-07-07 93 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 = {};