如何动态更改对象的键

时间:2014-04-09 13:26:30

标签: javascript jquery object

我有一个这样的对象:

var obj{};

我想动态设置对象值:

for(i=0;i<10;i++)
{
quest='quest'+i;
header='header'+i;
$(obj).data(quest,{header:i});
quest,header=0;
}

我希望将对象保存为:

obj{quest1:{header1:1},
quest2:{header2:2}
quest3:{header3:3}

但他们像以下一样得救:

obj{quest1:{header:1},
quest2:{header:2},
quest3:{header:3},

我的对象中的标头键未获得实际值。但只需保存为&#34;标题&#34; ..

你能指导我吗?

3 个答案:

答案 0 :(得分:2)

你可以写:

var obj = {};

for(i=1; i<11; i++) {
   quest='quest'+i;
   header='header'+i;
   obj[quest] = {};
   obj[quest][header] = i;
}

答案 1 :(得分:1)

在您的代码中,您的循环以i = 0开头,但属性从1开始。

var quest, header, obj = {};

for (i = 0; i < 10; i += 1) {
  quest = 'quest' + (i + 1);
  header = 'header' + (i + 1);
  obj[quest] = {};
  obj[quest][header] = (i + 1);
}

答案 2 :(得分:0)

您不能在对象文字中使用变量键。