我可以按如下方式创建动态对象:
var year=2103;
var month=9;
var selected={};
selected[year][month]=true;
但是下面给出了一个未定义的对象错误,我认为是因为第一个键尚未创建而且Javascript不会自动执行此操作。
selected[year]=true;
答案 0 :(得分:5)
但是下面给出了一个未定义的对象错误,我认为是因为第一个键尚未创建而且Javascript不会自动执行此操作。
是的,您必须创建它:
var year = 2103;
var month = 9;
var selected = {};
selected[year] = {};
selected[year][month] = true;
如果您不确定该对象是否已存在,并且不想覆盖它:
selected[year] = selected[year] || {};
作为填充对象的快捷方式,如果缺少&一步分配月份键:
(selected[year]||(selected[year]={}))[month] = true;
答案 1 :(得分:0)
您只需添加一个步骤:选择[年] = [];
var year=2103;
var month=9;
var selected=[];
selected[year]=[];
selected[year][month]=true;