You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何缩短JavaScript中这类多条件判断的if else语句?

JavaScript 多条件if-else语句缩短方案

你给出的判断逻辑核心是校验输入日期属于工作日还是周末,这里提供两种常用的简化方案:

方案1:使用Array.includes()简化多或判断

原来的多段||等值判断本质是校验变量是否属于某个固定集合,用数组的includes方法可以直接实现该逻辑,同时我们可以把重复的日期格式化逻辑抽出来,减少冗余代码:

let today = prompt('Enter day').toLowerCase();
// 预先定义工作日集合
const workDays = ['monday', 'tuesday', 'wednesday', 'friday'];
// 抽离重复的格式化逻辑
const formattedDay = today.replace(/^\w/, (c) => c.toUpperCase());

if (workDays.includes(today)) {
    console.log(`${formattedDay} is a work day.`);
} else {
    console.log(`${formattedDay} is weekend day.`);
}

如果需要兼容用户输入非星期内容的异常场景,可以再加一层else if判断周末集合,避免非法输入也进入周末分支:

let today = prompt('Enter day').toLowerCase();
const workDays = ['monday', 'tuesday', 'wednesday', 'friday'];
const weekendDays = ['saturday', 'sunday'];
const formattedDay = today.replace(/^\w/, (c) => c.toUpperCase());

if (workDays.includes(today)) {
    console.log(`${formattedDay} is a work day.`);
} else if (weekendDays.includes(today)) {
    console.log(`${formattedDay} is weekend day.`);
} else {
    console.log('请输入有效的星期名称');
}

方案2:使用对象映射完全消除判断语句

如果不同分支的逻辑仅返回内容不同,可以预先把所有输入对应的结果存在对象中,直接通过键值匹配拿到结果,完全省略if判断,代码更简洁易维护:

let today = prompt('Enter day').toLowerCase();
// 预定义日期和类型的映射关系
const dayTypeMap = {
    monday: 'work',
    tuesday: 'work',
    wednesday: 'work',
    friday: 'work',
    saturday: 'weekend',
    sunday: 'weekend'
};
const formattedDay = today.replace(/^\w/, (c) => c.toUpperCase());
const dayType = dayTypeMap[today];

dayType ? console.log(`${formattedDay} is ${dayType} day.`) : console.log('请输入有效的星期名称');

内容的提问来源于stack exchange,提问作者Herman93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:12:02