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

如何用两个数组运行循环并输出对应学生成绩等级?

修正后的JavaScript代码及注释

原代码的问题在于使用了嵌套for循环,每个学生会遍历所有分数,导致4×4=16次输出。我们需要让每个学生对应数组中同位置的分数,用单循环即可实现需求:

function gradeNumbers() {
    // 学生姓名数组,顺序与分数数组一一对应
    var students = ["John", "Tyler", "Rose", "Lawrence"];
    // 将分数字符串转为数字,避免字符串比较的逻辑错误
    var marks = ["35", "44", "55", "66"].map(Number);
    
    // 单循环遍历,索引i同时关联学生和对应分数
    for (var i = 0; i < students.length; i++) {
        var currentStudent = students[i];
        var currentMark = marks[i];
        
        // 根据分数区间判断等级并输出
        if (currentMark < 40) {
            console.log(currentStudent + " got F");
        } else if (currentMark < 50) {
            console.log(currentStudent + " got D");
        } else if (currentMark < 60) {
            console.log(currentStudent + " got C");
        } else if (currentMark < 70) {
            console.log(currentStudent + " got B");
        }
    }
}

// 调用函数执行逻辑
gradeNumbers();

关键修正说明:

  • 移除嵌套循环,通过同一索引直接匹配学生和对应分数,循环次数从16次减少到4次
  • 转换分数为数字类型:原代码中字符串形式的分数会触发字符串比较(比如"100"<"40"会返回true),转为数字后才能正确进行数值判断
  • 移除原代码中无意义的return gradeNumbers语句,改为直接调用函数执行逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:45:46