Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:返回与对象相关信息的关联数组_Javascript_Arrays_Associative Array - Fatal编程技术网

Javascript:返回与对象相关信息的关联数组

Javascript:返回与对象相关信息的关联数组,javascript,arrays,associative-array,Javascript,Arrays,Associative Array,我有一系列学生的名字和他们这学期的成绩。如何让我的javascript代码返回所有根据数组获得“A”分数的学生的名字?我知道这是遥远的,但这是我目前所拥有的 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Javascript</title> <script> var grades= []; grades [0] =

我有一系列学生的名字和他们这学期的成绩。如何让我的javascript代码返回所有根据数组获得“A”分数的学生的名字?我知道这是遥远的,但这是我目前所拥有的

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Javascript</title>
    <script>
    var grades= [];

    grades [0] = "F";
    student [0] = "John";
    grades [1] = "D";
    student [1] = "George";
    grades [2] = "C";
    student [2] = "Bill";
    grades [3] = "B";
    student [3] = "Ted";
    grades [4] = "A";
    student [4] = "Rick";

    function getNames ()
    {

        for (var i =0;i <grades.length;i++)
            {
        if (grades[1] = "F")
            {
            document.getElementById("lowgrade").innerHTML= student[1];
            }
        else if(grades[1] = "D")
            {
            document.getElementById("midlowgrade").innerHTML= student[1];
            }
        else if(grades[1] = "C")
            {
            document.getElementById("midgrade").innerHTML= student[1];
            }
        else if(grades[1] = "B")
            {
            document.getElementById("highgrade").innerHTML= student[1];
            }
        else if(grades[1] = "A")
            {
            document.getElementById("bestgrade").innerHTML = student[1];
            }

    }

    </script>

</head>

<body>
    <h1>My Page</h1>
    <form name = "f1">
    Enter Grade<input type ="text" id="grades" name="wed" value="" /><br/>
    <input type="button" value="Check Student" onclick="getNames()" />
    </form>
    <div id="text" />

</body>

</html>

Javascript
风险值等级=[];
等级[0]=“F”;
学生[0]=“约翰”;
职系[1]=“D”;
学生[1]=“乔治”;
职系[2]=“C”;
学生[2]=“比尔”;
职系[3]=“B”;
学生[3]=“Ted”;
职系[4]=“A”;
学生[4]=“瑞克”;
函数getNames()
{
对于(var i=0;i
函数getStudentsByGrade(等级){
var grade_学生=[];
for(var i=0;i
函数getNames(){
对于(变量i=0;i
你犯了一些错误:

  • 你用1代替了我
  • 您使用了=而不是==
  • 您忘了用}关闭for
  • 你认错人了
  • (等等)

    或者像这样:

    ['A', 'B', 'C', 'D', 'F'].map(function(letter){
      return students.filter(function(student){
         return student.grade.toUpperCase() == letter; //if all the letters are uppercased already on the student objects then no need for `toUpperCase()`
      });
    });
    

    这么多问题,你用的是=而不是==或===…你的分数是[1]而不是[i]。在这里提问之前,您需要对自己的作业进行一些基本调试。您正在为每个
    if
    s赋值。请检查。你们都很了不起,非常感谢。我对这整件事非常陌生,这是一个巨大的帮助!非常感谢!然后我如何让用户输入分数并返回学生?我告诉我a我如何允许输入,然后将此功能分配给一个按钮,该按钮将获取与此成绩相关的人员的姓名?再次感谢您的帮助!我假设您是javascript初学者,请继续,我会帮您解决问题。我正在等待您是否要保存您的电子邮件删除该评论,以便您不会被人垃圾邮件看到这个问题的人。
    function getNames(){
      for(var i = 0; i < grades.length; i++){
        if(grades[i] == "F"){
          document.getElementById("lowgrade").innerHTML = student[i];
        }
        else if(grades[i] == "D"){
          document.getElementById("midlowgrade").innerHTML = student[i];
        }
        else if(grades[i] == "C"){
          document.getElementById("midgrade").innerHTML = student[i];
        }
        else if(grades[i] == "B"){
          document.getElementById("highgrade").innerHTML = student[i];
        }
        else if(grades[i] == "A"){
          document.getElementById("bestgrade").innerHTML = student[i];
        }
      }
    }
    
    var students = [
      {name: "John", grade: "F"},
      {name: "George", grade: "D"}
    ] //obviously fill the rest
    
    function getByGrade(grade){
      return students.filter(function(student){
        return student.grade.toUpperCase() == grade.toUpperCase();
      });
    });
    
    As = getByGrade('F');
    Bs = getByGrade('D');
    
    ['A', 'B', 'C', 'D', 'F'].map(function(letter){
      return students.filter(function(student){
         return student.grade.toUpperCase() == letter; //if all the letters are uppercased already on the student objects then no need for `toUpperCase()`
      });
    });