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

JavaScript打印间隔日期出现大量undefined问题求助

问题原因分析

1. 循环次数过多引发数组索引越界

你的循环条件设为i <= 7,这会让循环执行8次(i从0到7)。但days数组只有7个元素,索引范围是0到6。初始传入的name是2,每次循环name += 2,后续会依次变成4、6、8、10……当name超过6时,days[name]访问的是数组不存在的位置,自然输出undefined。

2. 外层多余的console.log导致额外输出

最后一行console.log(alternate_days(2))会打印函数的返回值,但你的alternate_days函数没有定义return语句,JS函数默认返回undefined,这又会多输出一个undefined。

修复后的代码
function alternate_days(name) {
  let days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
  // 合并重复逻辑,用while循环避免索引越界
  while (name < days.length) {
    console.log(days[name])
    name += 2
  }
}

alternate_days(2);

修复说明:

  • 用while循环替代for,只要name小于数组长度就继续执行,从根源避免索引越界
  • 去掉冗余的奇偶分支(两个分支逻辑完全一致)
  • 直接调用函数,不再用console.log包裹,避免打印函数默认返回的undefined

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:29:56