【发布时间】:2014-05-19 15:33:32
【问题描述】:
我需要此代码根据用户想要排序的内容按姓氏、名字或分数进行排序。我的姓氏排序功能正常工作,问题是当我选择按分数排序时,它会对分数进行排序,但输出不是我需要的列表。它只是提取分数并将它们连接到文本区域中。我不知道如何进入学生群体以获取我需要显示的其他信息。 请帮忙。 这是我的代码
var $ = function (id) {
return document.getElementById(id);
}
var Scores = [];
var Students = [];
var results = "";
var calculate_click = function (){
var lastName = $("last_name").value;
var firstName = $("first_name").value;
var score = parseInt($("score").value);
Scores.push(score);
var student = lastName.toString() + ", " + firstName.toString() + ": " + score.toString() + "\n";
Students.push(student);
results += student;
$("name_list").value = results;
calculateAverage();
}
var calculateAverage = function () {
var score = 0;
if(Scores.length > 0) {
for(var n = 0; n < Scores.length; n++)
{ score += Scores [n];
}
score = score/Scores.length
}
$("aver_area").value = score;
}
window.onload = function() {
$("submit_score").onclick = calculate_click;
$("clear").onclick = clear_click;
$("sort_name").onclick = sort_click;
$("sort_score").onclick = sort_score;
}
var clear_click = function() {
Scores = [];
Students = [];
results = "";
$("name_list").value = results;
calculateAverage ();
}
var sort_click = function() {
Students.sort();
results = "";
for(var n = 0; n < Students.length; n++)
{ results += Students[n];
}
$("name_list").value = results;
}
var sort_score = function() {
Scores.sort();
results = "";
for(var n = 0; n < Scores.length; n++)
{ results += Scores[n];
}
$("name_list").value = results;
}
【问题讨论】:
-
你的数据是什么样的?这是最重要的部分,你能发布一个输入和期望输出的例子吗?
-
这就是我的问题所在。我的排序功能有效,但我无法链接这两个数组,所以当我按分数排序时,我实际上只是提取分数数字,而不是我需要的其他学生数据。
标签: javascript arrays sorting