我有一系列的学生姓名和他们在学期获得的成绩。我怎么能得到我的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>
答案 0 :(得分:0)
function getStudentsByGrade(grade){
var grade_students = [];
for(var i=0;i < students.length;i++){
if(grades[i] == grade){
grade_students.push(students[i]);
}
}
return grade_students;
}
var grade_a_students = getStudentsByGrade("A");
答案 1 :(得分:0)
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];
}
}
}
你犯了一些错误:
答案 2 :(得分:0)
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()`
});
});