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

处理日期数组判断场景,如何减少if语句的使用?

简化日期检查逻辑的几种方法

可以用以下几种方式去掉冗余的if语句,让代码更简洁易维护:

方法一:遍历完整星期列表做统一判断

先定义包含所有星期几的数组,然后通过循环遍历每个星期几,统一判断是否存在于目标数组中,符合条件就打印提示:

callDays(){
    const days: string[]=['Sunday','Monday','Wednesday','Thursday','Friday','Saturday'];
    // 定义完整的星期列表
    const allWeekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    
    allWeekDays.forEach(day => {
        if(days.includes(day)){
            console.log(`${day} is included`);
        }
    });
}

这样不管要检查多少个日期,只需要维护allWeekDays数组即可,不用重复写if判断。

方法二:用Set提升查询效率

如果目标数组days的元素数量较多,数组的includes方法性能会稍差,这时可以把days转换成Set,利用Set的has方法更快的查询速度:

callDays(){
    const days: string[]=['Sunday','Monday','Wednesday','Thursday','Friday','Saturday'];
    const daySet = new Set(days);
    const allWeekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    
    allWeekDays.forEach(day => {
        if(daySet.has(day)){
            console.log(`${day} is included`);
        }
    });
}

这种方式在数据量大的时候优势更明显,同时也能避免重复的if语句。

方法三:直接遍历目标数组(按需选择)

如果你的需求只是打印所有存在于days中的日期提示,不需要检查每一个固定星期几,也可以直接遍历days数组:

callDays(){
    const days: string[]=['Sunday','Monday','Wednesday','Thursday','Friday','Saturday'];
    // 去重(如果需要避免重复打印)
    const uniqueDays = [...new Set(days)];
    
    uniqueDays.forEach(day => {
        console.log(`${day} is included`);
    });
}

这种方式代码最简洁,但只适用于不需要检查“缺失的日期”的场景,和你原本的逻辑略有差异,按需选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:05:17