Javascript 排序表数据

Javascript 排序表数据,javascript,arrays,sorting,Javascript,Arrays,Sorting,谁能教我如何对用户输入的数据进行排序?我计划对表格中的数据(分数)进行排序,并获得结果,例如,将分数从最高点排序到最低点。 我当前的代码需要帮助进行排序 //Brandon Tan P1514627 //Zong Wei P151 //Javascript //Table headers document.write("<table><th style='width:25px'>No.</th>"); document.write("<th styl

谁能教我如何对用户输入的数据进行排序?我计划对表格中的数据(分数)进行排序,并获得结果,例如,将分数从最高点排序到最低点。 我当前的代码需要帮助进行排序

//Brandon Tan P1514627
//Zong Wei P151

//Javascript

//Table headers
document.write("<table><th style='width:25px'>No.</th>");
document.write("<th style='width:100px'>Name</th>");
document.write("<th style='width:100px'>Attendance</th>");
document.write("<th style='width:100px'>Homework</th>");
document.write("<th style='width:100px'>Midterm Test</th>");
document.write("<th style='width:100px'>Final Exam</th>");
document.write("<th style='width:100px'>Final Grade</th>");
document.write("<th style='width:100px'>Letter Grade</th>");

//Setting the component weightage
    do{
        var weightAtt = parseFloat(prompt("Enter the weightage of attendance"));

    while (weightAtt<=0 || weightAtt>=1 || isNaN(weightAtt)) {
        alert("The weightage of attendance must a positive number less than 1");
        var weightAtt = parseFloat(prompt("Enter the weightage of attendance"));
    }

    var weightHw = parseFloat(prompt("Enter the weightage of homework"));

    while (weightHw<=0 || weightHw>=1 || isNaN(weightHw)) {
        alert("The weightage of homework must a positive number less than 1");
        var weighthw = parseFloat(prompt("Enter the weightage of homework"));
    }

    var weightMdt = parseFloat(prompt("Enter the weightage of midterm test"));

    while (weightMdt<=0 || weightMdt>=1 || isNaN(weightMdt)) {
        alert("The weightage of midterm test must a positive number less than 1");
        var weightMdt = parseFloat(prompt("Enter the weightage of midterm test"));
    }

    var weightFx = parseFloat(prompt("Enter the weightage of final exam"));

    while (weightFx<=0 || weightFx>=1 || isNaN(weightFx)) {
        alert("The weightage of final exam must a positive number less than 1");
        var weightFx = parseFloat(prompt("Enter the weightage of final exam"));
    }
        if ([weightAtt + weightHw + weightMdt + weightFx] != 1) {
            alert("The total weightage of all components must be equals to 1!");
        }
    }
    while ([weightAtt + weightHw + weightMdt + weightFx] != 1);

//----------------------------------------------------------------------------

//Enter the number of students you want to enter the grades for    
    var numStudents = parseInt(prompt("Enter the number of students"));

    while (numStudents<=0 || isNaN(numStudents)) {
        alert("The number of students must a postive integer!");
        var numStudents = parseInt(prompt("Enter the number of students"));
    }
//Loop    
for(var i = 0; i < numStudents; i++){

    var no = i + 1;

        document.write("<tr><td style='width:25px'>" + no + "</td>");

    var name = prompt("Enter the student's name");

        document.write("<td style='width:100px'>" + name + "</td>");
//----------------------------------------------------------------------------    
    var att = parseFloat(prompt("Enter " + name + "'s attendance"));

    while (att<0 || att>100 || isNaN(att)) {
        alert("Attendance marks must be a number between 0-100!");
        var att = parseFloat(prompt("Enter " + name + "'s attendance"));
    }
        document.write("<td style='width:100px'>" + att + "</td>");
 //---------------------------------------------------------------------------       
    var hw = parseFloat(prompt("Enter " + name + "'s homework"));

    while (hw<0 || hw>100 || isNaN(hw)) {
        alert("Homework marks must be a number between 0-100!");
        var hw = parseFloat(prompt("Enter " + name + "'s homework"));
    }

        document.write("<td style='width:100px'>" + hw + "</td>");
//----------------------------------------------------------------------------    
    var mdt = parseFloat(prompt("Enter " + name + "'s midterm test"));

    while (mdt<0 || mdt>100 || isNaN(mdt)) {
        alert("Midterm Test marks must be a number between 0-100!");
        var mdt = parseFloat(prompt("Enter " + name + "'s midterm test"));
    }

        document.write("<td style='width:100px'>" + mdt + "</td>");
//----------------------------------------------------------------------------        
    var fx = parseFloat(prompt("Enter " + name + "'s final exam"));

    while (fx<0 || fx>100 || isNaN(fx)) {
        alert("Final Exam marks must be a number between 0-100!");
        var fx = parseFloat(prompt("Enter " + name + "'s final exam"));
    }

        document.write("<td style='width:100px'>" + fx + "</td>");
 //---------------------------------------------------------------------------   
    var fg = att * weightAtt + hw * weightHw + mdt * weightMdt + fx * weightFx

        document.write("<td style='width:100px'>" + fg + "</td>");
//----------------------------------------------------------------------------    
    var lg = 0;
        if(fg >= 80){
            lg = "A";
        }

        else if(fg < 80 && fg >= 70){
            lg = "B";
        }

        else if(fg < 70 && fg >= 60){
            lg = "C";
        }

        else if(fg < 60 && fg >=50){
            lg = "D";
        }
        else if (fg >= 0 && fg < 50){
            lg = "F";
        }

        document.write("<td style='width:100px'>" + lg + "</td></tr>");
}


document.write("</table>");
//Brandon Tan P1514627
//宗伟P151
//Javascript
//表格标题
文件。填写(“编号”);
文件。填写(“名称”);
文件。书写(“出席”);
文件。写(“家庭作业”);
书面记录(“中期测试”);
写作(“期末考试”);
书面记录(“最终成绩”);
文件。书写(“字母等级”);
//设置组件权重
做{
var-weighatt=parseFloat(提示(“输入考勤权重”);
while(weighatt=1 | | isNaN(weighatt)){
警报(“出席人数的权重必须为小于1的正数”);
var-weighatt=parseFloat(提示(“输入考勤权重”);
}
var weightHw=parseFloat(提示(“输入家庭作业的权重”);
而(权重hw=1 | |伊斯南(权重hw)){
警告(“家庭作业的权重必须是小于1的正数”);
var weighthw=parseFloat(提示(“输入家庭作业的权重”);
}
var-weightMdt=parseFloat(提示(“输入中期测试的权重”);
while(weightMdt=1 | | isNaN(weightMdt)){
警惕(“中期测试的权重必须是小于1的正数”);
var-weightMdt=parseFloat(提示(“输入中期测试的权重”);
}
var weightFx=parseFloat(提示(“输入期末考试的权重”);
while(weightFx=1 | | isNaN(weightFx)){
警告(“期末考试权重必须为小于1的正数”);
var weightFx=parseFloat(提示(“输入期末考试的权重”);
}
如果([weighatt+weightHw+weightMdt+weightFx]!=1){
警报(“所有组件的总重量必须等于1!”);
}
}
而([weighatt+weightHw+weightMdt+weightFx]!=1);
//----------------------------------------------------------------------------
//输入要输入成绩的学生人数
var numStudents=parseInt(提示(“输入学生人数”);
而(numStudents=80){
lg=“A”;
}
否则如果(fg<80&&fg>=70){
lg=“B”;
}
否则如果(fg<70&&fg>=60){
lg=“C”;
}
否则如果(fg<60&&fg>=50){
lg=“D”;
}
否则如果(fg>=0&&fg<50){
lg=“F”;
}
文件。写(“+lg+”);
}
文件。填写(“”);
  • 删除document.writes-仅添加到变量,然后在末尾呈现变量
  • 创建一个学生数组-在本例中是一个学生对象数组
  • 使用对象排序对数组进行排序
  • 这里有一个例子

    请注意,脚本/小提琴总共需要4个值,即1-例如0.25,0.15,0.35,0.25,才能退出第一个循环

    //Javascript
    var html = "";
    //Table headers
    html += "<table><th style='width:25px'>No.</th>";
    html += "<th style='width:100px'>Name</th>";
    html += "<th style='width:100px'>Attendance</th>";
    html += "<th style='width:100px'>Homework</th>";
    html += "<th style='width:100px'>Midterm Test</th>";
    html += "<th style='width:100px'>Final Exam</th>";
    html += "<th style='width:100px'>Final Grade</th>";
    html += "<th style='width:100px'>Letter Grade</th>";
    
    //Setting the component weightage
    do {
      var weightAtt = parseFloat(prompt("Enter the weightage of attendance"));
    
      while (weightAtt <= 0 || weightAtt >= 1 || isNaN(weightAtt)) {
        alert("The weightage of attendance must a positive number less than 1");
        var weightAtt = parseFloat(prompt("Enter the weightage of attendance"));
      }
    
      var weightHw = parseFloat(prompt("Enter the weightage of homework"));
    
      while (weightHw <= 0 || weightHw >= 1 || isNaN(weightHw)) {
        alert("The weightage of homework must a positive number less than 1");
        var weighthw = parseFloat(prompt("Enter the weightage of homework"));
      }
    
      var weightMdt = parseFloat(prompt("Enter the weightage of midterm test"));
    
      while (weightMdt <= 0 || weightMdt >= 1 || isNaN(weightMdt)) {
        alert("The weightage of midterm test must a positive number less than 1");
        var weightMdt = parseFloat(prompt("Enter the weightage of midterm test"));
      }
    
      var weightFx = parseFloat(prompt("Enter the weightage of final exam"));
    
      while (weightFx <= 0 || weightFx >= 1 || isNaN(weightFx)) {
        alert("The weightage of final exam must a positive number less than 1");
        var weightFx = parseFloat(prompt("Enter the weightage of final exam"));
      }
      if ([weightAtt + weightHw + weightMdt + weightFx] != 1) {
        alert("The total weightage of all components must be equals to 1!");
      }
    }
    while ([weightAtt + weightHw + weightMdt + weightFx] != 1);
    
    //----------------------------------------------------------------------------
    
    //Enter the number of students you want to enter the grades for    
    var numStudents = parseInt(prompt("Enter the number of students"));
    
    while (numStudents <= 0 || isNaN(numStudents)) {
      alert("The number of students must a postive integer!");
      var numStudents = parseInt(prompt("Enter the number of students"));
    }
    //Loop    
    var students = [];
    
    for (var i = 0; i < numStudents; i++) {
      students[i] = {}
    
      var name = prompt("Enter the student's name");
      students[i].name = name;
    
      //----------------------------------------------------------------------------    
      var att = parseFloat(prompt("Enter " + name + "'s attendance"));
    
      while (att < 0 || att > 100 || isNaN(att)) {
        alert("Attendance marks must be a number between 0-100!");
        att = parseFloat(prompt("Enter " + name + "'s attendance"));
      }
      students[i].att=att;
      //---------------------------------------------------------------------------       
      var hw = parseFloat(prompt("Enter " + name + "'s homework"));
    
      while (hw < 0 || hw > 100 || isNaN(hw)) {
        alert("Homework marks must be a number between 0-100!");
        hw = parseFloat(prompt("Enter " + name + "'s homework"));
      }
      students[i].hw=hw;
    
      //----------------------------------------------------------------------------    
      var mdt = parseFloat(prompt("Enter " + name + "'s midterm test"));
    
      while (mdt < 0 || mdt > 100 || isNaN(mdt)) {
        alert("Midterm Test marks must be a number between 0-100!");
        mdt = parseFloat(prompt("Enter " + name + "'s midterm test"));
      }
      students[i].mdt=mdt;
      //----------------------------------------------------------------------------        
      var fx = parseFloat(prompt("Enter " + name + "'s final exam"));
    
      while (fx < 0 || fx > 100 || isNaN(fx)) {
        alert("Final Exam marks must be a number between 0-100!");
        fx = parseFloat(prompt("Enter " + name + "'s final exam"));
      }
      students[i].fx=fx;
      //---------------------------------------------------------------------------   
      var fg = att * weightAtt + hw * weightHw + mdt * weightMdt + fx * weightFx
      students[i].fg=fg;
      //----------------------------------------------------------------------------    
      var lg = 0;
      if (fg >= 80) {
        lg = "A";
      } else if (fg < 80 && fg >= 70) {
        lg = "B";
      } else if (fg < 70 && fg >= 60) {
        lg = "C";
      } else if (fg < 60 && fg >= 50) {
        lg = "D";
      } else if (fg >= 0 && fg < 50) {
        lg = "F";
      }
      students[i].lg=lg; 
    }
    // here you need to sort
    students.sort(function(a,b) {
      if (a.fg > b.fg) return 1;
      if (b.fg > a.fg) return -1;
      return 0;
    
    });
    for (var i = 0; i < numStudents; i++) {
      html += "<tr><td style='width:25px'>" + (i + 1) + "</td>";
      html += "<td style='width:100px'>" + students[i].name + "</td>";
      html += "<td style='width:100px'>" + students[i].att + "</td>";
      html += "<td style='width:100px'>" + students[i].hw + "</td>";
      html += "<td style='width:100px'>" + students[i].mdt + "</td>";
      html += "<td style='width:100px'>" + students[i].fx + "</td>";
      html += "<td style='width:100px'>" + students[i].fg + "</td>";
      html += "<td style='width:100px'>" + students[i].lg + "</td></tr>";
    }
    
    html += "</table>";
    var div = document.createElement("div");
    div.innerHTML=html;
    document.body.appendChild(div);
    
    //Javascript
    var html=“”;
    //表格标题
    html+=“编号”;
    html+=“名称”;
    html+=“出席”;
    html+=“家庭作业”;
    html+=“期中考试”;
    html+=“期末考试”;
    html+=“最终成绩”;
    html+=“字母等级”;
    //设置组件权重
    做{
    var-weighatt=parseFloat(提示(“输入考勤权重”);
    while(weighatt=1 | | isNaN(weighatt)){
    警报(“出席人数的权重必须为小于1的正数”);
    var-weighatt=parseFloat(提示(“输入考勤权重”);
    }
    var weightHw=parseFloat(提示(“输入家庭作业的权重”);
    而(权重hw=1 | |伊斯南(权重hw)){
    警告(“家庭作业的权重必须是小于1的正数”);
    var weighthw=parseFloat(提示(“输入家庭作业的权重”);
    }
    var-weightMdt=parseFloat(提示(“输入中期测试的权重”);
    while(weightMdt=1 | | isNaN(weightMdt)){
    警惕(“中期测试的权重必须是小于1的正数”);
    var-weightMdt=parseFloat(提示(“输入中期测试的权重”);
    }
    var weightFx=parseFloat(提示(“输入期末考试的权重”);
    while(weightFx=1 | | isNaN(weightFx)){
    警告(“期末考试权重必须为小于1的正数”);
    var weightFx=parseFloat(提示(“输入期末考试的权重”);
    }
    如果([weighatt+weightHw+weightMdt+weightFx]!=1){
    警报(“所有组件的总重量必须等于1!”);
    }
    }
    而([weighatt+weightHw+weightMdt+weightFx]!=1);
    //----------------------------------------------------------------------------
    //输入要输入成绩的学生人数
    var numStudents=parseInt(提示(“输入学生人数”);
    而(纽姆学生100 | |伊斯南(att)){
    警报(“考勤分数必须是介于0-100之间的数字!”);
    att=parseFloat(提示(“输入”+姓名+“”的出席人数”);
    }
    学生[i].att=att;
    //---------------------------------------------------------------------------       
    var hw=parseFloat(提示(“输入”+name+“”的家庭作业”);
    而(hw<0 | | hw>100 | |伊斯南(hw)){
    警告(“家庭作业分数必须是0-100之间的数字!”);
    hw=parseFloat(提示(“输入”+name+“”的作业”);
    }
    学生[i].hw=hw;
    //----------------------------------------------------------------------------    
    var mdt=parseFloat(提示(“输入”+name+“”的中期测试”);
    而(mdt<0 | | mdt>100 | | isNaN(mdt)){
    警告(“期中考试分数必须是0-100之间的数字!”);
    mdt=parseFloat(提示(“输入”+name+“”的期中测试”);
    }
    学生[i].mdt=mdt;
    //----------------------------------------------------------------------------        
    var fx=parseFloat(提示(“输入”+name+“”的期末考试”);
    而(fx<0 | | fx>100 | | isNaN(fx)){
    警告(“期末考试分数必须是0-100之间的数字!”);
    fx=parseFloat(提示(“输入”+name+“”的期末考试”);
    }
    学生[i].fx=fx