JavaScript中如何实现判断
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章将为大家详细讲解有关JavaScript中如何实现判断,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、一元判断1.1 举个例子?我们写一个常见的 if/e
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
湖南web服务器租用虚拟主机
戴尔服务器的网线接哪个口上
宝塔面板删除sql数据库
舞曲下载软件开发
信息安全与网络安全与执法一样吗
软件开发质保期和维护费
星环数据库查询表
中国网络技术属于中国吗
迷你主机当文件服务器
初中学软件开发工资太低了
2019网络安全大赛ctf
互联网和传统科技公司比较
浪潮以服务器为核心提出时间
网络安全牢记以下几点
政府行业网络安全痛点分析
建立简历数据库
换一张网络安全
百度网络安全大会
理正数据库安装无响应
中国移动互联网有哪些黑科技
网络技术人才需求变化
java软件开发外文文献
江北区提供软件开发流程报价表
勤和互联网科技
重庆软件开发自学网
理正excel数据库对接
二年级网络安全录视频
枣庄一手楼盘销售软件开发
潍坊市网络安全公司
计算机网络技术技能基础