gpt4 book ai didi

javascript - 访问定义为常量的对象属性

转载 作者:行者123 更新时间:2023-12-01 02:35:51 25 4
gpt4 key购买 nike

我有以下代码:

constants.js(定义以下常量)

var STATE_NOT_STARTED = 27;
var STATE_IN_PROGRESS = 28;
var STATE_DEFERRED = 29;
var STATE_CANCELLED = 30;
var STATE_COMPLETED = 31;

app.js(定义以下对象):

var App={

rules: {
STATE_NOT_STARTED:[STATE_IN_PROGRESS,STATE_COMPLETED,STATE_CANCELLED,STATE_DEFERRED],
STATE_IN_PROGRESS: [STATE_COMPLETED,STATE_CANCELLED,STATE_DEFERRED],
STATE_DEFERRED: [STATE_IN_PROGRESS],
STATE_CANCELLED: [STATE_IN_PROGRESS],
STATE_COMPLETED: [STATE_IN_PROGRESS]
}

}

现在我有一个可以获取值的函数。该值可以是 27、28、29、30 或 31。我想根据我得到的值获取规则的特定索引,如下所示:

function execute(value)
{
App.rules[value]//This returns undefined, even if the value is 27,28,29,30 or 31

}

为什么我使用 App.rules[value] 语句得到 undefined。根据括号表示法,我应该能够像这样检索 object key

注意:即使我这样做也不起作用:App.rules[STATE_NOT_STARTED]或任何其他常量值。它只能像这样工作:App.rules.STATE_NOT_STARTED,但由于该值是动态的,我不确定传递给函数时保存什么值参数

最佳答案

App.rules.STATE_NOT_STARTED !== STATE_NOT_STARTED//来自constants.js

你想做的事:

var App={

rules: {
[STATE_NOT_STARTED]:[STATE_IN_PROGRESS,STATE_COMPLETED,STATE_CANCELLED,STATE_DEFERRED],
[STATE_IN_PROGRESS]: [STATE_COMPLETED,STATE_CANCELLED,STATE_DEFERRED],
[STATE_DEFERRED]: [STATE_IN_PROGRESS],
[STATE_CANCELLED]: [STATE_IN_PROGRESS],
[STATE_COMPLETED]: [STATE_IN_PROGRESS]
}

}

关于javascript - 访问定义为常量的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47925573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com