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

新手求助:Array Function出现TypeError: not iterable错误

问题分析与修复方案

你的代码存在三个关键问题,逐个拆解如下:

1. 函数调用未传入参数

你定义的gradingStudents函数需要接收grades数组作为参数,但调用时写的是gradingStudents(),没有传参,函数内部根本拿不到要处理的成绩数据。

2. 循环内过早使用return导致只处理第一个元素

return语句会直接终止函数执行,你在for...of循环里每一次迭代都用了return,这意味着函数只会处理数组的第一个元素就结束,完全不会处理后面的成绩。

3. 未收集所有处理后的成绩

你需要把每个处理后的成绩存入一个新数组,最后返回这个完整的数组,而不是每次只返回单个处理后的成绩值。


修复后的代码

let grades = [4,73,67,38,33]
 
function gradingStudents(grades) {
  // 创建空数组存储处理后的成绩
  const result = [];
  for (const grade of grades) {
    if (grade >= 38 && grade % 5 === 3) {
      result.push(grade + 2);
    } else if (grade >= 38 && grade % 5 === 4) {
      result.push(grade + 1);
    } else {
      result.push(grade);
    }
  }
  // 最后返回整个处理后的数组
  return result;
}
// 调用时传入grades数组
console.log(gradingStudents(grades))

运行这段代码会输出正确结果:[4, 75, 67, 40, 33]


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:55:09