我有这个对象:
var State = {
WAITING: 1,
READY: 2
}
这个对象用于获取状态文本:
var Language = {
States: {
WAITING: "Waiting..",
READY: "Ready!"
}
}
我想直接从状态获取文本,如下所示:
var state = State.READY;
var statusText = Language.States[state];
为了让它工作,我需要类似这样的非法语法:
var Language = {
States: {
State.WAITING: "Waiting..",
State.READY: "Ready!"
}
}
但这不起作用,我可以使用什么来简单地从状态变量中获取文本?
最佳答案
不,你不知道。只要让你的值(value)观合理,而不是神奇的数字。在这种情况下,让它们使用映射到其他对象使用的键名称的字符串,然后完成:
var States = {
WAITING: "WAITING",
READY: "READY"
}
var Language = {
States: {
WAITING: "Waiting..",
READY: "Ready!"
}
}
瞧:
var state = States.WAITING;
var label = Language.States[state]
如果这些状态数字有意义,那么也查找它们:
var responseCodes = {
"0": "WAITING",
"1": "READING",
"403": "FORBIDDEN",
...
}
然后链接你的查找:
...
var responseCode = whatever();
var state = responseCodes[responseCode];
var label = Language.State[state];
...
关于Javascript 对象枚举语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565726/