JavaScript中如何实现判断
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关JavaScript中如何实现判断,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、一元判断1.1 举个例子?我们写一个常见的 if/e
千家信息网最后更新 2025年01月19日JavaScript中如何实现判断一、一元判断
1.1 举个例子?
1.2 放入 Object 中
1.3 放入 Map 中
二、多元判断
2.1 举个例子?
2.2 将判断条件拼成字符串放入 Object 中
2.3 将判断条件拼成字符串放入 Map 中
2.4 将判断条件放入 Object 后再放入 Map 中
2.5 将判断条件写成 正则 后再放入 Map 中
这篇文章将为大家详细讲解有关JavaScript中如何实现判断,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、一元判断
1.1 举个例子?
我们写一个常见的 if/else 判断的函数,然后对他进行优化。
const myFunction = (status) => { if (status === 1) { console.log("status1"); } else if (status === 2) { console.log("status2"); } else if (status === 3) { console.log("status3"); }};
1.2 放入 Object 中
我们知道, JavaScript 的 Object 其实就是一些 键值对 的无序集合,正因如此我们可以借助其存放判断的条件。例如上述情况,判断条件是一个数字类型,后续操作也仅仅是用到了一个字符串,这时我们就可以创建一个对象,把所用到的数字和字符串分别作为 Object 的键名和对应值。
// 将判断条件放入 Object 中const statusObj = { 1: "status1", 2: "status2", 3: "status3",};// 优化后函数?const myFunction = (status) => { console.log(statusObj[status]);};
1.3 放入 Map 中
除了原始对象以外,我们还可以使用 Map 对象。我们来看下 MDN 对其的描述:
Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。
不难看出,Map 对象其实就是普通对象的加强版,特别是任何值都可以作为其键值对,这意味着 函数 、 正则 等也可以作为其键或值,这也就大大方便了我们将其作为判断的操作。具体关于 Map 对象的细节此处不再展开。
// 将判断条件放入 Map 中const statusMap = new Map([ [1, "status1"], [2, "status2"], [3, "status3"],]);// 优化后函数?const myFunction = (status) => { console.log(statusMap.get(status));};
二、多元判断
2.1 举个例子?
既然一元判断可以优化,那么多元判断也可以进行优化,下面是有两种判断条件的案例。
// 举个例子?const myFunction = (right, status) => { if (right === "administrator" && status === 1) { console.log("管理员喜欢王冰冰"); } else if (right === "administrator" && status === 2) { console.log("管理员不喜欢王冰冰"); } else if (right === "user" && status === 1) { console.log("用户喜欢王冰冰"); } else if (right === "user" && status === 2) { console.log("用户不喜欢王冰冰"); }};// 有重复情况的例子?const myFunction = (right, status) => { if (right === "administrator" && status === 1) { console.log("管理员喜欢王冰冰"); } else if (right === "administrator" && status === 2) { console.log("管理员喜欢王冰冰"); } else if (right === "user" && status === 1) { console.log("用户喜欢王冰冰"); } else if (right === "user" && status === 2) { console.log("用户喜欢王冰冰"); }};
2.2 将判断条件拼成字符串放入 Object 中
两种情况也同样可以用 Object 进行优化。
// 优化"例子?"// 将判断条件放入 Object 中const actionsObj = { "administrator-1": "管理员喜欢王冰冰", "administrator-2": "管理员不喜欢王冰冰", "user-1": "用户喜欢王冰冰", "user-2": "用户不喜欢王冰冰",};// 优化后函数?const myFunction = (right, status) => { console.log(actionsObj[`${right}-${status}`]);};// 可以将函数作为"value",以下几种情况类似,不再赘述?const actionsObj = { "administrator-1": () => console.log("管理员喜欢王冰冰"), "administrator-2": () => console.log("管理员喜欢王冰冰"), "user-1": () => console.log("管理员喜欢王冰冰"), "user-2": () => console.log("管理员喜欢王冰冰"),};// 优化后函数?const myFunction = (right, status) => { actionsObj[`${right}-${status}`]();};// 优化"有重复情况的例子?"// 可以提取公共函数,以下几种情况类似,不再赘述?const actions = () => { const f1 = () => console.log("管理员喜欢王冰冰"); const f2 = () => console.log("用户喜欢王冰冰"); return { "administrator-1": f1, "administrator-2": f1, "user-1": f2, "user-2": f2, };};// 优化后函数?const myFunction = (right, status) => { actions()[`${right}-${status}`]();};
2.3 将判断条件拼成字符串放入 Map 中
同样的,我们也可以用 Map 对象。我们把两个条件存成字符串。
// 优化"例子?"// 将判断条件放入 Map 中const actionsMap = new Map([ ['administrator-1', '管理员喜欢王冰冰'], ['administrator-2', '管理员不喜欢王冰冰'], ['user-1', '用户喜欢王冰冰'], ['user-2', '用户不喜欢王冰冰']]);// 优化后函数?const myFunction = (right, status) => { console.log(actionsMap.get(`${right}-${status}`));};
2.4 将判断条件放入 Object 后再放入 Map 中
// 优化"例子?"// 将判断条件放入 Map 中const actionsMap = new Map([ [{ right: 'administrator', status: 1 }, () => console.log('管理员喜欢王冰冰')], [{ right: 'administrator', status: 2 }, () => console.log('管理员不喜欢王冰冰')], [{ right: 'user', status: 1 }, () => console.log('用户喜欢王冰冰')], [{ right: 'user', status: 2 }, () => console.log('用户不喜欢王冰冰')]]);// 优化后函数?const myFunction = (right, status) => { const action = [...actionsMap].filter(([e]) => (e.right === right && e.status === status)); action.forEach(([_, index]) => index.call());};
2.5 将判断条件写成 正则 后再放入 Map 中
利用正则表达式可以处理相对复杂一点的情况。
// 优化"有重复情况的例子?"// 将判断条件写成 正则 后再放入 Map 中const actions = () => { const f1 = () => console.log('管理员喜欢王冰冰'); const f2 = () => console.log('用户喜欢王冰冰'); return new Map([ [/^administrator-[1-2]/, f1], [/^user-[1-2]/, f2] ]);};// 优化后函数?const myFunction = (right, status) => { const action = [...actions()].filter(([e]) => e.test(`${right}-${status}`)); action.forEach(([_, index]) => index.call());};
关于"JavaScript中如何实现判断"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
王冰
管理员
管理
条件
函数
用户
例子
对象
情况
字符
字符串
正则
原始
篇文章
就是
数字
更多
不错
复杂
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器怎么安装依赖包
access 压缩数据库
青岛分销软件开发哪家靠谱
按键精灵还原数据库
湖北手机app软件开发
脸云互联网科技有限公司曲靖店
宜宾学院网络安全法
初学网络安全吗
java 数据库接口
内蒙古专业软件开发价格服务标准
c软件开发需要什么配置
淮北电力软件开发哪家好
网络安全需要核心技术例子
南京白鸥网络技术有限公司
广东项目售后管理软件开发
软件开发培训班需要多少钱
循环加载数据库数据库数据
无线网络技术结果分析
手机网络安全宣传高清图片
房山区运营网络技术口碑推荐
做h5软件开发的工资多高
江北软件开发公司
asp读取数据库数据
班级与学生信息的数据库er图
聚焦网络安全优化营商环境
华为服务器管理口怎么连
软件开发成功事件
计算机网络技术总结与思考
tom服务器端口永久打开
联想服务器sr590管理口