带有var的Javascript方法[重复]

Posted

技术标签:

【中文标题】带有var的Javascript方法[重复]【英文标题】:Javascript methods with a var in it [duplicate] 【发布时间】:2018-12-07 06:35:49 【问题描述】:

我试图在对象中获取对象的值,但键值是一个变量,所以我不知道如何让这段代码工作:

var res = 'Hello';
var greetings = 
  'Hello': 'lang':'EN' ,'goodbye': 'Goodbye',
  'Bonjour': 'lang':'FR', 'goodbye': 'Aurevoir'

以后我想用这个:

greetings.res.lang

得到:'EN',现在我得到'undefined',因为它计算表达式greetings.res而不是greeting.Hello,所以它在列表中找不到它。

编辑:感谢你们的快速回答!

【问题讨论】:

greetings[res].lang @SergioTulentsev 发布时出现错误...后来它编辑发布的是var greetings = 'Hello': 'lang':'EN' ,'goodbye': 'Goodbye', 'Bonjour': 'lang:'FR', 'goodbye': 'Aurevoir' @SergioTulentsev 是的。当我检查时,JSON 不好,这就是我这样评论的原因 @SergioTulentsev 已删除。谢谢! 【参考方案1】:

见How to create a Dictionary with Key/Value pairs

var res = 'Hello';
var greetings = 
  'Hello': 'lang':'EN' ,'goodbye': 'Goodbye',
  'Bonjour': 'lang':'FR', 'goodbye': 'Aurevoir'


console.log(greetings[res].lang);

【讨论】:

【参考方案2】:

这应该适合你:

var res = 'Hello';
var greetings = 
  'Hello': 'lang':'EN' ,'goodbye': 'Goodbye',
  'Bonjour': 'lang': 'FR', 'goodbye': 'Aurevoir'


alert(greetings[res].lang);

【讨论】:

【参考方案3】:

当你有动态键时使用[]

greetings[res].lang

greetings[res]['lang']

【讨论】:

【参考方案4】:

你可以这样访问它:

greetings[res].lang

【讨论】:

以上是关于带有var的Javascript方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有const vs var的Javascript全局范围[重复]

如何在javascript中完全获取带有重复键的JSON

格式化带两位小数的数字var [重复]

javascript var或not var,有啥区别? [复制]

带有 var=Thread.currentThread() 的代码块上的 synchronized(...) [重复]

JQuery / Javascript:检查var是不是存在[重复]