JS:使用(+)添加变量作为属性(.)

Bli*_*tZz 1 javascript json for-loop

如果我尝试将变量添加为属性,我会收到错误:

"Uncaught SyntaxError: Unexpected token +"

所以基本上我试图将一个循环中的变量作为属性添加到JSON,如下所示:

   var tables = ["table1", "table2", "table3"];
   for (var x = 0; x < tables.length; x++) {
     var item = $database. + tables[x];
     console.log(item);
   }
Run Code Online (Sandbox Code Playgroud)

如果我像这样使用(") var item = "$database." + tables[x];

它工作,但它变成一个字符串(如果这是正确的名称),所以我无法查看JSON对象.

为什么会发生这种情况,甚至可能这样做?

谢谢!

Don*_*own 6

试试这个:

for (var x = 0; x < tables.length; x++) {
    var item = $database[tables[x]];
    console.log(item);
}
Run Code Online (Sandbox Code Playgroud)

如果您$database是动态的并且您不希望拥有硬编码的表名数组,那么您还可以使用Object.keys():

var tables = Object.keys($database);
Run Code Online (Sandbox Code Playgroud)


jcu*_*bic 5

你可以使用括号表示法:

for (var x = 0; x < tables.length; x++) {
    var item = $database[tables[x]];
    console.log(item);
 }
Run Code Online (Sandbox Code Playgroud)