gpt4 book ai didi

javascript - 对 Javascript 数组进行排序

转载 作者:行者123 更新时间:2023-12-03 12:36:04 24 4
gpt4 key购买 nike

我需要此代码根据用户想要的排序依据按姓氏、名字或分数进行排序。我的姓氏排序功能正常工作,问题是当我选择按分数排序时,它会对分数进行排序,但输出不是我需要的列表。它只是提取分数并将它们连接在文本区域中。我不知道如何进入学生群体内部以获取我需要显示的其他信息。请帮忙。这是我的代码

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;
}

最佳答案

您如何保持学生和分数之间的联系?

最简单的方法是为每个学生创建一个对象,如下所示:

var students=[]; //array of student objects  
students[0]={firstName:"George", lastName:"Washington" score: 100}; //student object 1
students[1]={firstName:"Bill", lastName:"Clinton" score: 69}; //student object 2

然后创建各种排序函数:

function sortByLastName(a, b){
var nameA=a.lastName.toLowerCase(), nameB=b.lastName.toLowerCase()
if (nameA < nameB) //sort string ascending
return -1
if (nameA > nameB)
return 1
return 0 //default return value (no sorting)
}

然后您可以将此排序函数传递给数组进行排序。例如:

students.sort(sortByLastName);

更多信息: http://www.w3schools.com/jsref/jsref_sort.asp http://www.javascriptkit.com/javatutors/arraysort2.shtml

关于javascript - 对 Javascript 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23731717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com