Javascript - 动态对象键(第二个键)

时间:2013-09-03 18:46:12

标签: javascript

我可以按如下方式创建动态对象:

var year=2103;
var month=9;

var selected={};
selected[year][month]=true;

但是下面给出了一个未定义的对象错误,我认为是因为第一个键尚未创建而且Javascript不会自动执行此操作。

selected[year]=true;

2 个答案:

答案 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;