变量在JavaScript中被视为字符串

变量在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

我正在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 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;
}