Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript枚举键字符串转换为值_Javascript - Fatal编程技术网

将javascript枚举键字符串转换为值

将javascript枚举键字符串转换为值,javascript,Javascript,在JavaScript代码中,我定义了以下枚举: MyMessageIds = { UndefinedId : 0, FilenameId : 1, BuildFileId : 2, MovementArgsId : 3, MoveId : 4, ExecuteCommandId : 5 } 在JavaScript函数中,我希望能够提供枚举键(即“MoveId”)的字符串表示形式,并返回其整数值4。那么我该怎么做呢?只需使用括号表示法: var

在JavaScript代码中,我定义了以下枚举:

MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

在JavaScript函数中,我希望能够提供枚举键(即“MoveId”)的字符串表示形式,并返回其整数值4。那么我该怎么做呢?

只需使用括号表示法:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue(key) {
    return MyMessageIds[key];
}

您可以创建一些实用程序方法,这些方法使用一个对象(enum)来确定如何获取键/值

var MyMessageIds={
未定义:0,
FilenameId:1,
BuildFileId:2,
MovementArgsId:3,
MoveId:4,
执行命令:5
}
函数getEnumKeys(enumType){
返回Object.keys(mymessageid);
}
函数getEnumValues(enumType){
返回getEnumKeys(enumType).map(函数(键){
返回枚举类型[key];
});
}
函数getEnumValue(enumType,键){
返回enumType[getEnumKeys(enumType).filter(函数(k){
返回键===k;
}).pop();
}
document.body.innerHTML=''+JSON.stringify({
“枚举键”:getEnumKeys(MyMessageId),
“枚举值”:getEnumValues(MyMessageId),
‘例子’:{
'MoveId':getEnumValue(MyMessageId'MoveId')
}

},空,4)+''
也许我不完全理解您的问题,但您只需使用
MyMessageIds.MoveId
(或者
MyMessageIds[“MoveId”]
来获取整数值。MyMessageIds[“MoveId”]---这就是我要找的…谢谢。我该怎么做?我有号码,想要名字?此外,你应该通过应用来保护“事实”枚举不受更改。使用起来很好。有没有办法将枚举值作为MyMessageID获取。MoveId@sandeep.gosavi我认为'MyMessageId.getValueByName('MoveId'))你不想用什么方法吗?