JavaScript操作学生信息数组提取数据遇阻,求筛选不及格学生及最高分方案
功能实现方案
原有代码错误点
- 数组访问逻辑错误:
stuInfo是二维数组,stuInfo[0]存储所有学生姓名、stuInfo[1]存储所有学生分数,原有代码直接遍历stuInfo第一层,拿到的是子数组而非具体分数,无法和数字正常比较大小 - 循环越界:数组下标范围为
0 ~ 数组长度-1,使用i <= 数组.length的条件会访问到不存在的元素,触发逻辑异常 - 语法错误:最后两行
document.writeln语句末尾多了多余的+号,直接触发JS语法报错导致页面崩溃
正确实现代码
直接删除你写的错误代码,替换为以下内容即可同时实现两个需求:
// 1、查找所有不及格学生(默认60分为及格线,可自行修改数值调整) document.writeln("<h3>不及格学生名单</h3><ul>") for (var i = 0; i < numStu; i++) { // 分数小于60判定为不及格 if (stuInfo[1][i] < 60) { document.writeln("<li>" + stuInfo[0][i] + ":" + stuInfo[1][i] + "分</li>") } } document.writeln("</ul>") // 2、查找分数最高的学生 var maxScore = 0 var maxStuIndex = -1 for (var i = 0; i < numStu; i++) { if (stuInfo[1][i] > maxScore) { maxScore = stuInfo[1][i] maxStuIndex = i } } if (maxStuIndex !== -1) { document.writeln("<p>最高分是:" + maxScore + "分</p>") document.writeln("<p>最高分获得者:" + stuInfo[0][maxStuIndex] + "</p>") }
内容的提问来源于stack exchange,提问作者Rain Man
相关产品推荐
相关产品推荐

