我收到一个数字type = 3
,必须检查此枚举中是否存在该数字:
export const MESSAGE_TYPE = {
INFO: 1,
SUCCESS: 2,
WARNING: 3,
ERROR: 4,
};
我发现的最好方法是将所有Enum值作为一个数组并在其上使用indexOf。但是生成的代码不是很清晰:
if( -1 < _.values( MESSAGE_TYPE ).indexOf( _.toInteger( type ) ) ) {
// do stuff ...
}
有没有更简单的方法可以做到这一点?
不幸的是,这在ES6中有效,但不适用于ES5
—
Tim Schoch
@TimSchoch您只
—
Kevin Babcock
!!MESSAGE_TYPE[type]
需要检查一个值是否存在即可。MESSAGE_TYPE[type]
如果的值type
不存在,将返回undefinedMESSAGE_TYPE
@Kevin Babcock但是,其中一个枚举值映射到会失败
—
IngoBürk18年
0
。
@IngoBürk太好了!我想可以做一个明确的检查
—
凯文·巴布科克
MESSAGE_TYPE[type] !== undefined
if(Object.values(MESSAGE_TYPE).includes(+type)
?您无能为力。