JavaScript for循环仅执行一次无法完整遍历数组问题排查
故障原因
代码存在两处直接影响遍历的错误:
- 循环内部错误放置了
return语句:return会立刻终止当前函数的执行,第一次循环跑完打印第一条结果后就触发return退出函数,剩余的循环轮次完全不会执行。 - 循环边界判断有误:JavaScript数组下标从0开始计数,长度为3的数组有效下标范围是0-2,原代码写的
i <= arr.length会让i最终取到3,对应arr[3]为undefined,即使没有return的问题也会输出异常内容。
额外说明:console.log()本身没有业务返回值,固定返回undefined,不需要把它的执行结果赋值给变量。
修正方案
调整两个点即可:
- 移除循环内的
return语句,该函数的作用是批量打印预报结果,不需要在循环中途返回值 - 把循环条件从
i <= arr.length改为i < arr.length,避免越界访问不存在的数组元素
修正后完整代码:
const temperatures = [17, 21, 23]; const forcasting = function (arr) { for (let i = 0; i < arr.length; i++) { console.log(`${arr[i]}°C in ${i + 1} day.`); } }; forcasting(temperatures);
执行后正常输出:
17°C in 1 day. 21°C in 2 day. 23°C in 3 day.
内容的提问来源于stack exchange,提问作者user15064770
相关产品推荐
相关产品推荐

