变量在JavaScript中被视为字符串

时间:2012-03-21 05:42:27

标签: javascript node.js

我正在尝试节点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'}]

2 个答案:

答案 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;
}