0

単純なオブジェクトを作成し、それに動的にプロパティを追加する方法を知っています。オブジェクト = 新しいオブジェクト(); object.someproperty = "";

ただし、次のようなものを動的に作成するのに苦労しています:(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...)       
    };
4

2 に答える 2

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」の場合。

于 2009-07-07T21:08:26.247 に答える
0

あなたが示すようにJSON表記を使用するとうまくいくはずです。構文を理解するだけの問題です。

この表記法により、1 つのステートメントで非常に複雑な構造を作成できます。

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

等々。

ちなみに、これにより、次の省略形を使用して空のオブジェクトを作成することもできます。

var myObj = {};
于 2009-07-07T21:35:40.327 に答える