如何创建一个包含3名学生的数组,并按名字和nid排序

时间:2017-04-07 06:49:43

标签: javascript arrays sorting

我需要帮助创建一个对象"学生"有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;
&#13;
&#13;

1 个答案:

答案 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>