好的,所以我创建了各种各样的成绩簿。您添加您的名字和姓氏以及等级,然后将其添加到表格中(当我在Chrome上运行,但出于某种原因在jsfiddle上不运行时,它可以工作。这不是问题)
https://jsfiddle.net/bhLhayar/
我的问题是排序。我的单选按钮说“未定义”,但我认为我已经在JS中定义了它们。请咨询? XD
function sortby(what){
if(what == 'firstN'){studentdata.sortbyfirstSet();}
if(what == 'lastN'){studentdata.sortbylastSet();}
if(what == 'gradeUp'){studentdata.sortbygradeSetUp();}
if(what == 'gradeDown'){studentdata.sortbygradeSetDown();}
updatetable()
}
这是我认为我做错了的代码?与此有关:
sortbyFirstSet(){
this.data.sort(function (one, two){
if(one.firstName > two.firstName){return 1}
if(one.firstName < two.firstName){return -1}
if(one.firstName == two.firstName){return 0}
});
}
sortbylastSet(){
this.data.sort(function (one, two){
if(one.lastName > two.lastName){return 1}
if(one.lastName < two.lastName){return -1}
if(one.lastName == two.lastName){return 0}
});
}
sortbygradeSetUp(){
this.data.sort(function (one, two){
if(one.finalGrade > two.finalGrade){return 1}
if(one.finalGrade < two.finalGrade){return -1}
if(one.finalGrade == two.finalGrade){return 0}
});
}
sortbygradeSetDown(){
this.data.sort(function (one, two){
if(one.finalGrade < two.finalGrade){return 1}
if(one.finalGrade > two.finalGrade){return -1}
if(one.finalGrade == two.finalGrade){return 0}
});
}
最佳答案
您似乎正在将字符串作为变量传递。尝试改用onclick =“ sortby('lastN')”等。
而且您没有updatetable函数。也许您想调用updateGradebook()?
更新资料
还有一件事,您对sort方法的第一次调用是拼写错误的。应该是sortbyFirstSet