新手求助: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
相关产品推荐
相关产品推荐

