0

オブジェクトとしてjavascriptマトリックスを構築しようとしています。

私は結んだ:

var variations={}; 
variations["p1088"]["red"]["gen"]=1107;
variations["p1090"]["red"]["l"]=1288;

var variations={}; 
variations.p1088.red.gen=1107;
variations.p1090.red.gen=1288;

しかし、両方とも例外をスローします

TypeError: variations.p1090 is undefined

ここで何が問題なのですか?

4

3 に答える 3

5

各サブオブジェクトを宣言する必要があります。したがって、最初のセットを取得するには、

var variations = {};
variations.p1088 = {};
variations.p1088.red = {};
variations.p1088.red.gen = 1107;

ただし、あなたが何をしようとしているのかを理解していれば、バリエーションをオブジェクトの配列にします。

var variations = [];
variations[0] = {name: 'p1088',color:'red',gen:1007}
于 2012-12-06T19:03:28.250 に答える
4

エラーが言うように、variations.p1090は未定義です。あなたはそれに価値を与えたことはありません。

var variations={}; 
variations.p1088={};
variations.p1088.red={};
variations.p1088.red.gen=1107;
于 2012-12-06T19:03:21.423 に答える
2

p1088、red、およびgenがオブジェクトであると想定できないためです。これは機能します:

// short version
var variations = { p1088: { red: { gen: 1107 } } };

// long version
var varations = {};
varations.p1088 = {};
varations.p1088.red = {};
varations.p1088.red.gen = 1077;
于 2012-12-06T19:07:08.513 に答える