我有一个这样的对象:
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; ..
你能指导我吗?
答案 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)
您不能在对象文字中使用变量键。