javascript - 查看对象是否在嵌套对象中重复的最快方法
问题描述
我有以下嵌套对象
const ERR_CODES = {
INVALID_CONSUMER_ID: {
code: 1000,
message: 'Invalid Consumer ID',
},
INVALID_MOBILE: {
code: 1001,
message: 'Invalid Mobile Number',
},
INVALID_ZIPCODE: {
code: 1002,
message: 'Invalid Zipcode',
},
INVALID_FIRST_NAME: {
code: 1000,
message: 'First Name',
},
}
当两个对象具有相同的代码时,我想抛出一个错误,例如在示例中消费者 id 和名字都有 1000 的错误代码。通过我的ERR_CODES
obj 并查看是否有任何代码重复的最快方法是什么?
解决方案
您可以使用地图来跟踪代码并与之进行比较,如果代码已经是地图的一部分,则可能会引发错误。
const ERR_CODES = {
INVALID_CONSUMER_ID: {
code: 1000,
message: 'Invalid Consumer ID',
},
INVALID_MOBILE: {
code: 1001,
message: 'Invalid Mobile Number',
},
INVALID_ZIPCODE: {
code: 1002,
message: 'Invalid Zipcode',
},
INVALID_FIRST_NAME: {
code: 1000,
message: 'First Name',
}
};
let keys = Object.keys(ERR_CODES);
let codesMap = {};
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let obj = ERR_CODES[key];
let code = obj.code;
if (!codesMap[code]) {
codesMap[code] = true
} else {
console.error('Duplicate');
}
}
推荐阅读
- ruby - Ruby 中的“end.new”有什么用?为什么不单独使用“结束”
- reactjs - 上下文 `router` 在 `Redirect` 中被标记为必需,但其值为 `undefined`
- jenkins - 有没有办法使用詹金斯中的选择参数一次构建多个参数?
- mysql - wp_postmeta 和 wp_woocommerce_order_itemmeta 表之间的区别
- apache-karaf - 执行命令时出错:无法解析 root:缺少要求 [root] osgi.identity;
- php - 如何检测字符串是否需要转换为 UTF-8
- spring - org.springframework.core.convert.converter.Converter
给出错误:Null 不能是非空类型的值 - keyboard-shortcuts - 19.04 更新后 Alt-tab 快捷方式不起作用
- php - 如何在codeigniter中创建动态表单?
- java - 无法为 JDK11 构建 JemmyFX - 类“com.sun.glass.ui.Robot”不再存在