Javascript 循环数组

标签 javascript

我试图搞乱 javascript,我创建了一个多维数组:

var students = [ [['David'], [80]], [['Vinoth'], [77]], [['Goren'],[55]] ];  

然后我创建了一个 if 语句来测试学生的成绩是否是 F 到 A。

for (var i = 0; i < students.length; i++) {
  for (var j = 1; j < students.length; j++) {
    document.write(students[i][j] + "<br/>");

    if (students[i][j] < 60) {
      document.write(students[i][j] + " is Grade : F");
    } else if (students[i][j] < 70) {
      document.write(students[i][j] + " is Grade : D");
    } else if (students[i][j] < 80) {
      document.write(students[i][j] + " is Grade : C");
    } else if (students[i][j] < 90) {
      document.write(students[i][j] + " is Grade : B");
    } else if (students[i][j] < 100) {
      document.write(students[i][j] + " is  Grade : A");
    }
  }
}

为了输出学生的姓名和成绩,我什至创建了三个无效的 for 循环。

我想知道我怎样才能实现这个输出:

David's grade is 80 and is C Grade.
Vinoth's grade is 77 and is C Grade.
Goren's grade is 55 and is F Grade.

知道我的代码缺少什么吗?

最佳答案

其他答案建议简化数组结构。如果你真的想使用额外的嵌套,你需要做一个额外的索引级别。但是你不需要嵌套循环,因为它仍然只是一个线性结构。

for (var i = 0; i < students.length; i++) {
    var student = students[i][0][0];
    var score = students[i][1][0];
    var grade;
    if (score < 60) {
      grade = "F";
    } else if (score < 70) {
      grade = "D";
    } else if (score < 80) {
      grade = "C";
    } else if (score < 90) {
      grade = "B";
    } else if (score < 100) {
      grade = "A";
    }
    document.write(student + "'s score is " + score + ' and is Grade ' + grade + '<br>');
}

此外,如果您期望得分为 80生成 C等级而不是 B , 你应该使用 <=而不是 <在比较中。

作为一般规则,我建议对异构数据使用对象而不是数组,因此您的数组应该是这样的:

var students = [ {
    name: 'David',
    score: 80
}, {
    name: 'Vinoth',
    score: 77
}, {
    name: 'Goren',
    score: 55
}];

然后你使用students[i].namestudents[i].score , 这更容易理解。

我们的想法是,您使用数组来收集所有相同类型的事物,并使用对象来收集关于某个事物的相关信息。

关于Javascript 循环数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42686006/

相关文章:

javascript - 如何使用 Video-React 预览视频

javascript - 突出显示日期时间的 TD 单元格

javascript - 如何使用 CORS 设置 GCP App Engine 实例?

javascript - 在没有 for 循环的情况下调整大小时(使用 jquery)在单个元素中 Bootstrap 轮播多个图像

javascript - 如何使用 puppeteer(node js ) 保持 gmail 登录状态

javascript - 让动画在 Angular 6 组件中不起作用

javascript - 如何获取对表格内文本区域的引用?

javascript - jQuery 无尽-动画

javascript - 我可以在脚本包中使用 QueryString 版本吗?

javascript - 背景图片交换全屏