ES6对于每个/地图学生成绩

时间:2018-06-02 21:01:51

标签: javascript foreach ecmascript-6 functional-programming mapping

需要你的一点提示 - 这里有新手。

我有一个包含学生姓名和考试成绩的示例性数组。

我需要执行检查学生是否通过考试的功能(让我们假设分数> = 80足以通过)并且在两种情况下都显示正确的信息 - "传递"或者"没有通过"。

我需要使用.map结构或"为每个"环。

如果你能帮助我,我真的很感激:)

var students = [['David', 80], ['Vinoth', 77], ['Divya', 88], ['Ishitha', 95], ['Thomas', 68]];

4 个答案:

答案 0 :(得分:3)

您可以尝试使用None功能:

Array.map

答案 1 :(得分:0)

是的,只是循环所有学生:

 for(const [name, score] of students) {
   //...
 }

现在您只需根据分数进行记录即可获得所需信息:

 if(true /*?*/) {
   console.log(name + " did pass");
 } else {
  console.log(name + " did not pass");
 }

不,这还行不通,我遗漏了一些东西让你解决......:)

答案 2 :(得分:0)

我不确定你是否会使用相同的(只是丰富的)数据结构或仅输出,但是如果你想在现有的嵌套数组上构建结果:

students = students.map(s => { 
  return [s[0], s[1], s[1] >= 80 ? 'passed' : 'not passed'];
});

如果您只想输出学生姓名:通过/未通过,您可以改为使用forEach

答案 3 :(得分:-1)

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script>
  $(function(){
          var students = [['David', 80], ['Vinoth', 77], ['Divya', 88], ['Ishitha', 95], ['Thomas', 68]];
          for (var i = 0; i < students.length; ++i) {
               var item = students[i];
               if(item[1]>= 80){
                  console.log(item[0] + ": Passed.");
               }else{
                   console.log(item[0] + ": Didn't pass.");
               }

          }
     });
</script>

结果:

David: Passed.
Vinoth: Didn't pass.
Divya: Passed.
Ishitha: Passed.
Thomas: Didn't pass.