如何在JavaScript中对二维数组进行排序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在JavaScript中对二维数组进行排序?相关的知识,希望对你有一定的参考价值。
最后我的排序功能不起作用。我想按升序对学生成绩进行排序,但无法打印出来。我的排序功能会通过并手动进行比较,但是无法正常工作。问题可能是学生班级正在使用什么来向数组添加值。
<html>
<body>
<script>
class Student
constructor(name,grade)
this.name = name;
this.grade = grade;
detail()
document.writeln(this.name + " " + this.grade + "<br/>")
var grade = [];
var count = 0;
function setStudent()
var name = prompt("Enter Name", "name");
while(name != '???')
var grades= parseInt(prompt("Enter Grade", "Grade"));
var student = new Student(name,grades);
grade.push(student);
name = prompt("Enter Name", "name");
count++
function showGrades()
for(i=0;i<count;i++)
grade[i].detail();
function maxGrade()
var mgrade = grade[0].grade;
var names = "";
for (i=0;i<count;i++)
if(mgrade<grade[i].grade)
mgrade=grade[i].grade;
names = grade[i].name
document.writeln("Max Grade: " + mgrade + " Name: " + names);
setStudent();
showGrades();
maxGrade();
document.writeln("<br/> Assorted List (Ascending): <br/>");
grade.sort(function(a,b)
return a[0] - b[0] || a[1] - b[1];
);
console.log(grade);
</script>
</body>
</html>
答案
问题是此语句:
grade.sort(function(a,b)
return a[0] - b[0] || a[1] - b[1];
);
a
和b
是学生对象。它显示在console.log
语句中。因此,a[0]
和b[0]
未定义。
我不确定a[1] - b[1]
指的是什么,但我认为您想要这个:
grade.sort(function(a,b)
return a.grade - b.grade;
);
以上是关于如何在JavaScript中对二维数组进行排序?的主要内容,如果未能解决你的问题,请参考以下文章