2015-04-24 83 views
1

如果我想添加一個變量作爲屬性我得到的錯誤(。):JS:添加變量作爲屬性與(+)

"Uncaught SyntaxError: Unexpected token +"

所以基本上我想添加

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

如果我使用(「)這樣的 var item = "$database." + tables[x];

它的工作原理,但它變成:從一個循環的屬性,以JSON像這樣的變量一個字符串(如果這是正確的名稱),所以我無法查看JSON對象。

爲什麼會發生這種情況,甚至有可能這樣做?

謝謝!

+2

也許你的意思是'$ database [tables [x]]'但沒有上下文,很難說。取決於'$ database'是什麼。 –

+2

如果您需要將屬性名稱作爲字符串傳遞,請使用括號表示法。所以像'var item = $ database [tables [x]];' –

回答

6

試試這個:

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

如果您$database是動態的,你不希望有表名的硬編碼的數組,你也可以使用Object.keys()

var tables = Object.keys($database); 
+0

哇! 99+爲「Object.keys()」這非常有用!謝謝! :d – BlitZz

5

你可以使用括號表示法:

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