2014-03-02 78 views
1

這是我的一個代碼從我的nodeJs程序在這裏。我有一個叫做transMap的地圖。我想讀取yy的值,獲得「ipaddress」並將其作爲json和它的值傳遞出去。我本來希望json的響應是{ "ipaddress" : "http://derivedURL.com"}。但我得到的是{ arg : "http://derivedURL.com"}如何獲得變量的值?

我錯過了這裏真正基本的東西。

var transMap = new Map(); 
     transMap.set('xx', {rPath:'/xxs', sn:2,res:['rid']}); 
     transMap.set('yy', {rPath:'/yys', sn:3, res: ['ipaddress','dns']}); 
     transMap.set('zz', {rPath:'/zzs', sn:4, res:['uri', 'fqdn']}); 

     var arg = (transMap.get(yy)).res[0] ; //arg = ipaddress 
     var jsonResponse = { arg : "http://derivedURL.com"}; 
     console.log(jsonResponse); // 

編輯1:arg必須獲取從transMap獲得的「ipaddress」的值。派生的URL來源於不同於本次討論的函數。

我的控制檯現在顯示爲:{ arg : "http://derivedURL.com"}。但我想它讀{ "ipaddress" : "http://derivedURL.com"}

+0

的[是否有可能動態命名的屬性添加到JavaScript對象?]可能重複(http://stackoverflow.com/questions/1184123/is-it-possible-to-add-dynamically-命名屬性到JavaScript的對象) –

回答

2

當你這樣做:

var jsonResponse = { 
    arg : 'someArg' 
} 

arg沒有得到評估,以它的價值。相反,它被用作'arg'本身。擁有它評估它的價值,你可以將其設置是這樣的:

jsonResponse[arg] = 'someArg' 

當您使用[]符號,關鍵(在這裏:arg)總是得到的範圍進行評估。

Example jsFiddle

+0

這個答案不幫助我或我不理解它。請參閱我編輯的問題Edit1:arg必須獲得「ipaddress」的值。派生的URL來源於不同於本次討論的函數。 我的控制檯現在顯示爲:{arg:「http://derivedURL.com」}。但我希望它讀取{「ipaddress」:「http://derivedURL.com」} – lonelymo

+0

而不是'var jsonResponse = {arg:「http://derivedURL.com」};',做'var jsonResponse [arg ] =「http://derivedURL.com」;'。 – xbonez