2014-07-26 280 views
0

我想在JavaScript中使用字符串作爲JSON屬性。使用字符串獲取JSON屬性

var knights = { 
     'phrases': 'Ni!' 
}; 

var x = 'phrases'; 

console.log(knights.x);   // Doesn't log "Ni!" 

當我運行此代碼時,顯然不工作,因爲它解釋「x」而不是變量「x」的內容。

在引擎收錄情況下的完整代碼:http://pastebin.com/bMQJ9EDf

有沒有簡單的解決方案呢?

+0

使用:騎士[x] – conceptdeluxe

+1

**這與JSON無關** –

回答

2

knights.x尋找名爲x的房產。你想要knights[x],這相當於knights['phrases'] == knights.phrases

的完整代碼(固定幾個錯字在你的例子):

var knights = { 
     "phrases": "Ni!" 
}; 

var x = 'phrases'; 

console.log(knights[x]); // logs Ni! 
2

嘗試這種使用具有字符串變量來訪問值

kinghts[x] 

基本上這是欺騙

kinghts[x]==knighted["phrases"]==knighted.phrases. 

knights.x會得到一個名爲x關鍵,所以它會回到這裏undefined

2

knights.x相同knights['x'] - 下鍵x取回財產。它不訪問變量x並替換值。相反,你想knights[x]這相當於knights['phrases']