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

带中断逻辑的循环递增JavaScript函数实现故障求助

问题分析与修复

需求回顾

循环迭代最多10次,每次将接收的数字加2,将每个新值存入数组并返回;若某一时刻数值与迭代次数相等,需中断执行并返回字符串"Execution was interrupted"。

现有代码问题

你的代码存在两个核心问题:

  1. 触发中断条件时仅用break跳出循环,但后续依然返回数组,没有按照需求返回中断字符串。
  2. 你提到传入50时返回undefined,大概率是修改代码时误删了return语句(原代码中存在return nuevosValores,正常不会返回undefined)。

修复后的代码

function breakStatement(num) {
  const nuevosValores = [];

  for (let i = 0; i < 10; i++) {
    num += 2;
    nuevosValores.push(num);

    // 满足中断条件时直接返回指定字符串,无需额外break
    if (num === i) {
      return "Execution was interrupted";
    }
  }

  // 未触发中断则返回结果数组
  return nuevosValores;
}

测试验证

  • 传入-4:第三次循环时num变为2,此时i=2,满足num === i,直接返回"Execution was interrupted",符合预期。
  • 传入50:循环执行10次,依次存入52、54、56、58、60、62、64、66、68、70,最终返回该数组。若你预期是9个元素,可能是对“迭代次数”的定义理解偏差——若迭代次数从1开始计数,可将循环改为for (let i = 1; i <= 10; i++),此时会得到9个元素(直到i=9时存入68,第10次存入70)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:35:19