2009-07-07 35 views
0

Ich weiß, wie man einfaches Objekt erstellen und dynamische Eigenschaften hinzufügen. Objekt = neues Objekt(); object.someproperty = "";dynamisch erstellen Objekt mit Eigenschaften in Javascript

Aber ich habe hardtime dynamisch so etwas wie dies zu schaffen: (in 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

Sie Ihre Frage „flot“ markiert, aber nie flechten im Titel oder Text Ihrer Frage erwähnt. Sie haben nicht einmal eine Frage gestellt. Ist Ihr Problem, dass Sie das Objekt nicht erstellen können? Oder, dass Sie es nicht mit Flot zu chartern bekommen? Ich denke, wenn Sie Ihre Frage klarer machen könnten, würden Sie Hilfe bekommen, die Ihrem Problem angemessen ist. – Nosredna

Antwort

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

mit

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]]; 

Dies ist das JSON-Format.

dataset.usa.label = 'USA'; 

oder dataset.usa.label = country; // etc

Und:

dataset['usa'] 

gleich

dataset.usa 

die

dataset[country] 

zu

gleich ist, wenn das Land Variable 'usa'.

0

Die Verwendung der JSON-Notation, wie Sie demonstrieren, sollte funktionieren. Es geht nur darum, Ihre Syntax herauszufinden.

Die Notation ermöglicht es Ihnen recht komplexe Strukturen in einer Anweisung zu erstellen:

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

Und so weiter.

By the way, dies ermöglicht es Ihnen auch für die Erstellung von leeren Objekten die folgende Kurzschreibweise zu verwenden:

var myObj = {}; 
Verwandte Themen