我试图建立一个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
这里有什么不对吗?
答案 0 :(得分:5)
需要声明每个子对象。因此,要获得第一个设置,它将是
var variations = {};
variations.p1088 = {};
variations.p1088.red = {};
variations.p1088.red.gen = 1107;
但是,如果我理解你要做的事情,我会做出各种对象的变化。
var variations = [];
variations[0] = {name: 'p1088',color:'red',gen:1007}
答案 1 :(得分:4)
如错误所示,variations.p1090
未定义。你永远不会给它一个价值。
var variations={};
variations.p1088={};
variations.p1088.red={};
variations.p1088.red.gen=1107;
答案 2 :(得分: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;