【发布时间】:2021-01-21 11:40:26
【问题描述】:
我正在尝试获取一个在 Javascript 中工作的静态类似 Java 的地图对象。我不是 javascript 专家,但我想知道这是否可能。我想做的是以下几点:
我在定义
const MY_CONST_1 = 'Constant 1 value';
const MY_CONST_2 = 'Constant 2 value';
还有一个像这样的“类似地图”的对象:
const CONST_AMOUNT_MAP = {
MY_CONST_1: 30,
MY_CONST_2: 22
}
然后,在我定义的函数中:
function getAmount(constValue) {
return CONST_AMOUNT_MAP[constValue];
}
我的期望是使用上述函数调用时
getAmount('Constant 1 value')
返回数字“30”。然而,
CONST_AMOUNT_MAP[constValue];
返回“未定义”。只有
CONST_AMOUNT_MAP[MY_CONST_1]
返回正确的金额。
是否可以定义一个对象,例如 CONST_AMOUNT_MAP,它允许基于预定义的 const 变量而不是基于 const 的实际值来查找条目?
谢谢
【问题讨论】:
-
我不完全清楚你想要做什么,但我认为你想要
const CONST_AMOUNT_MAP = { [MY_CONST_1]: 30, [MY_CONST_2]: 22 }——也就是说,通过在它们周围加上[]来评估属性名称。跨度>
标签: javascript ecma