2017-10-18 4 views
0

なぜ変数を使用してドキュメント内の何かにアクセスできないのですか?フィールドをハードコーディングすると動作しますが、変数を使用すると動作しません。変数を使用してフィールド内の配列メンバーにアクセスすることはできません

building = "AS" 
room = "243" 
item = "whiteBoard.votes[0]" 

RI.findOne({$and: [{"building": building }, {"room": room}]}, (err, x) => { 
    console.log(x.whiteBoard.votes[0]) //works 
    console.log(x[item]) //undefined 
+0

がここhttps://stackoverflow.com/questions/5187530/variable-variables-in-javascript –

+0

@BeingSunny見る本当に適用されていません... –

答えて

2

この機能はどこにも定義されていないため、動作するとは限りません。あなたはアクセスを分割する必要があります。

console.log(x["whiteBoard"]["votes"][0]) 

また、あなたがX.Y表記を使用してキーにアクセスできるようにする必要がある場合、あなたは.に文字列を分割して個別にこれらにアクセスすることができます。

別のオプションは使用することですlodashget方法:https://lodash.com/docs/4.17.4#get

関連する問題