2011-11-07 93 views
0

我試圖從鍵/值列表創建對象。我的問題是,對象屬性必須是有效的JavaScript標識符。至少在Adobe ExtendScript中,我可以完美地創建一個具有錯誤屬性的對象(請參閱示例:wrong-key - >「 - 」 - 文字無效)。如何將字符串轉義/編碼爲JavaScript標識符

var kvp = ["key;value", "wrong-key;value"]; 
var obj = {}; 

for (var i = 0 ; i < kvp.length; i++) { 
    pair = kvp[i].split(";"); 
    obj[pair[0]] = pair[1]; 
} 
alert (obj.key); 
alert (obj.wrong-key); // -> Throws an Error 

當然,我會跑replace(/-/,"_"),但沒有任何編碼/避開功能在那裏更廣泛地實現這一目標?

感謝, 格雷戈爾

回答

1

你可以使用數組符號

console.log(obj["wrong-key"]); 
+0

好吧特殊字符訪問這些屬性。但只是爲了記錄,是「錯誤的關鍵」,一個有效的js標識符? – grefel

+0

@grefel:不,它不是。 –

+0

你的意思是「有效」的js標識符?當然,你可以完全擁有一個屬性名稱,就像你有「錯誤鍵」一樣,儘管如果可能的話,由於你遇到的問題,我會避免這樣做。 – Juri

相關問題