2017-04-07 40 views
1

我需要创建一个对象“学生”有3个属性帮助排序:名字,姓氏,NID(5位数)。如何与3名学生创建一个数组,并让他们的名字和NID

与3个学生创建一个数组“myclass”。

用名字对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>

+1

产生一个语法错误 - 修复这些要求 –

+0

之前,您需要1:一''标签添加到您的网页,然后解决这个问题:'VAR学生=(名字,姓氏,nid){'这是不正确的语法,你错过了'函数' - 在按钮上使用'type =“button”'也是一个好主意。我为你创建了一个片段,以便我们可以立即测试你的代码 – mplungjan

+0

谢谢我会尝试解决这个问题。抱歉。不只是JavaScript友好 – StoneBrothersProduction

回答

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>

相关问题