c = {
"UNKNOWN_ERR" : 0,
"INDEX_SIZE_ERR" : 1,
"DOMSTRING_SIZE_ERR" : 2,
"HIERARCHY_REQUEST_ERR" : 3,
"WRONG_DOCUMENT_ERR" : 4,
"INVALID_CHARACTER_ERR" : 5,
"NO_DATA_ALLOWED_ERR" : 6,
"NO_MODIFICATION_ALLOWED_ERR" : 7,
"NOT_FOUND_ERR" : 8,
"NOT_SUPPORTED_ERR" : 9}
要使用密钥获取值很简单,我只需使用c["UNKNOWN_ERR"]
中的密钥获取0
,因为所有值都是唯一的,可以安全地获取密钥(消息)值(错误代码)。
是否有标准方法可以做到这一点,还是我需要编写一个查看所有键并搜索该特定值的函数?
答案 0 :(得分:17)
正如您已经假设的那样,您需要迭代对象的属性并检查值。
for(var key in c) {
if(c[key] === whatever) {
// do stuff with key
}
}
答案 1 :(得分:9)
es6 find
方法:
const getKey = (obj,val) => Object.keys(obj).find(key => obj[key] === val);
在你的情况下
console.log(getKey(c,1)); // INDEX_SIZE_ERR
答案 2 :(得分:6)
您也可以使用此代码获取密钥
var errKey = _.invert(c)[errCode];
表示e.x.如果您使用errCode = 3,如下所示
var errKey = _.invert(c)[3];
然后
errKey
将为HIERARCHY_REQUEST_ERR
答案 3 :(得分:1)