我正在尝试节点js上的node-mysql模块。我想做的是能够想出这样一个对象:
{'room1':'Room 1','room2':'Room 2','room3':'Room 3'}
以下是代码:
var boom = results;
var rooms = [];
var index = 0;
var name = 'session';
for(var b in boom){
var ses = name + index;
rooms[b] = {ses : boom[b]['ses_title']};
index++;
}
ses变量在上面的代码中被视为一个字符串。我最终得到了类似的东西:
[{ses : 'class session'} , {ses : 'team session'}]
答案 0 :(得分:2)
你需要使用类似的东西:
rooms[b] = {};
rooms[b][ses] = boom[b]['ses_title'];
这是因为对象文字中的键总是按字面解释,而不是求值。
答案 1 :(得分:2)
您无法指定类似的键名。使用bracket notation,它应该有效:
var boom = results;
var rooms = [];
var index = 0;
var name = 'session';
for(var b in boom){
rooms[b] = {};
rooms[b][name + index] = boom[b]['ses_title']};
index += 1;
}