我需要帮助创建一个对象"学生"有3个属性:名字,姓氏,NID(5位数字)。
创建一个数组" myclass"有3名学生。
使用Firstname对myclass进行排序。
使用NID对myclass进行排序。
我已经设置了一些,但我对阵列和对象了解不多。需要帮助以正确的方式完成并解释
var student = (firstname, lastname, nid) {
this.firstname = firstname;
this.lastname = lastname;
this.nid = nid;
this.myclass = myclass;
}
var myclass = {
"myclass": {
student.firstname: "Matthew",
student.lastname: "Stone",
student.nid: 458293
},
"myclass": {
student.firstname: "Arian",
student.lastname: "Minaie",
student.nid: 891023
},
"myclass": {
student.firstname: "Pelin",
student.lastname: "Schvechsky",
student.nid: 496054
}
}
function myFunction1() {
myclass.sort();
document.getElementById("Post").innerHTML = firstname;
}
function myFunction2() {
myclass.sort();
document.getElementById("Post").innerHTML = nid;
}

<p id="Post"></p>
<button onclick="myFunction1()">Sort Alphabetically by First Name!</button>
<button onclick="myFunction2()">Sort Numerically by NID!</button>
&#13;
答案 0 :(得分:0)
您可以为学生使用构造函数并为学生创建新实例。然后,您需要按所需属性对数组进行排序。
function Student(firstname, lastname, nid) {
this.firstname = firstname;
this.lastname = lastname;
this.nid = nid;
}
function sortByFirstnameAsc() {
myClass.sort(function (a, b) {
return a.firstname.localeCompare(b.firstname);
});
document.getElementById("Post").innerHTML = JSON.stringify(myClass, 0, 4);
}
function sortByNIDAsc() {
myClass.sort(function (a, b) {
return a.nid - b.nid;
});
document.getElementById("Post").innerHTML = JSON.stringify(myClass, 0, 4);
}
var myClass = [
new Student("Matthew", "Stone", 458293),
new Student("Arian", "Minaie", 891023),
new Student("Pelin", "Schvechsky", 496054)
];
<button onclick="sortByFirstnameAsc()">Sort Alphabetically by First Name!</button>
<button onclick="sortByNIDAsc()">Sort Numerically by NID!</button>
<pre id="Post"></pre>