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

JavaScript数组面试真题:查找代码错误并完成调试说明

面试题代码分析与调试

原代码运行结论

代码本身无语法错误,可以正常执行,但逻辑完全不符合设计预期,核心问题出在条件判断的比对对象错误。

错误原因分析

  • 循环变量i是数组的下标索引,为Number类型,取值范围是0~6的整数
  • 代码中直接用i === 'Wednesday'、i === 'Saturday'做严格相等判断,类型完全不匹配,两个判断条件永远返回false,对应的分支逻辑永远不会触发,最终只会按顺序打印出数组中所有的星期名称,没有任何预期的特殊提示,也不会提前终止循环。

修正方案

有两种可行的修正逻辑:

  1. 比对索引对应的数组值(可读性更高,推荐)
  2. 直接比对索引数值(写法更简洁)

修正后代码(推荐方案)

const weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

for (let i = 0; i < weekDays.length; i++){
    // 将判断对象从索引i改为索引对应的数组值weekDays[i]
    if (weekDays[i] === 'Wednesday'){
        console.log('Today is Wednesday, join board meeting by 10:00am');
        continue;
    }
    if (weekDays[i] === 'Saturday'){
        console.log("Today is Saturday, weekend is great!");
        break;
    }
    console.log(weekDays[i]);
}

修正后运行结果

  • 依次输出:Sunday、Monday、Tuesday
  • 匹配到Wednesday时,输出会议提醒,continue跳过本次的星期打印逻辑,继续下一轮循环
  • 接着输出:Thursday、Friday
  • 匹配到Saturday时,输出周末提示,break直接终止循环,不会打印Saturday本身

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:27:03