变量在JavaScript中被视为字符串
我正在NodeJS上试用NodeMySQL模块。我想做的是能够想出这样一个物体:变量在JavaScript中被视为字符串,javascript,node.js,Javascript,Node.js,我正在NodeJS上试用NodeMySQL模块。我想做的是能够想出这样一个物体: {'room1':'Room 1','room2':'Room 2','room3':'Room 3'} [{ses : 'class session'} , {ses : 'team session'}] 代码如下: var boom = results; var rooms = []; var index = 0; var name = 'session'; for(var b
{'room1':'Room 1','room2':'Room 2','room3':'Room 3'}
[{ses : 'class session'} , {ses : 'team session'}]
代码如下:
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变量在上述代码中被视为字符串。我最终得到了这样的结果:
{'room1':'Room 1','room2':'Room 2','room3':'Room 3'}
[{ses : 'class session'} , {ses : 'team session'}]
您需要使用以下内容:
rooms[b] = {};
rooms[b][ses] = boom[b]['ses_title'];
这是因为对象文本中的键总是按字面解释的,而不是计算的。您需要使用类似于:
rooms[b] = {};
rooms[b][ses] = boom[b]['ses_title'];
这是因为对象文本中的键总是按字面解释,而不是计算。您不能这样分配键名。使用并应起作用:
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;
}
你不能这样分配键名。使用并应起作用:
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;
}