variables在JavaScript中被视为一个string
我正在尝试节点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++; }
在上面的代码中,sesvariables被视为string。 最后我得到了这样的结果:
[{ses : 'class session'} , {ses : 'team session'}]
你不能像这样分配键名。 使用括号符号 ,它应该工作:
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; }
你需要使用像这样的东西:
rooms[b] = {}; rooms[b][ses] = boom[b]['ses_title'];
这是因为对象文字中的键总是按字面解释,而不是评估。