我想在JavaScript中使用字符串作为JSON属性。
var knights = {
'phrases': 'Ni!'
};
var x = 'phrases';
console.log(knights.x); // Doesn't log "Ni!"
当我运行此代码时,它显然不起作用,因为它解释了" x"而不是变量的内容" x"。
关于pastebin的上下文中的完整代码:http://pastebin.com/bMQJ9EDf
有一个简单的解决方案吗?
答案 0 :(得分:2)
尝试使用具有字符串值的变量
进行访问kinghts[x]
基本上这是技巧
kinghts[x]==knighted["phrases"]==knighted.phrases.
knights.x
会获得一个名为x
的密钥,因此它会在此处返回undefined
。
答案 1 :(得分:2)
knights.x
查找名为x
的属性。您需要knights[x]
,相当于knights['phrases']
== knights.phrases
。
完整代码(修复示例中的几个拼写错误):
var knights = {
"phrases": "Ni!"
};
var x = 'phrases';
console.log(knights[x]); // logs Ni!
答案 2 :(得分:2)
knights.x
与knights['x']
相同 - 检索密钥x
下的属性。它没有访问变量x
并在值中替换。相反,您希望knights[x]
等同于knights['phrases']