2012-09-28 34 views
-1

可能重複:
How to sort an array of javascript objects?需要按照某種邏輯的Javascript數組排序

我有一個陣列myResponse.students[i]

我計算總標記在每一個學生數組通過一些邏輯,現在我想根據我計算的總分數對數組進行排序。如何使用JavaScript做到這一點?

+0

這是一個數組或數組對象的數組? –

+0

可能重複[如何排序的JavaScript對象的數組?](http://stackoverflow.com/questions/979256/how-to-sort-an-array-of-javascript-objects)和[排序JavaScript數組的對象(http://stackoverflow.com/questions/5421253/sort-javascript-array-of-objects)。 –

+0

@FelixKling它的對象數組......爲了得到我需要做的這個名字'myResponse.students [i] .student.name' –

回答

2

假設爲學生提供的邏輯是要排序

數組
myResponse.students.sort(byMark) 

function byMark(a, b){ 
    return b.mark - a.mark; // sort score desc 
} 
+0

這裏是什麼'a'&'b'? –

+0

排序函數將挑選和排列中的對象作爲a和b進行比較。你可以在sort函數中做任何事情來返回你的defind值。返回值會告訴比較函數如何排序。返回0 =相等,返回1或更大意味着a更大,返回-1或更低意味着a低於b – hsgu

+0

嗨...我明白了。但在我的情況下,總分不在數組中......我在外面計算它... –

0

試一下這個

​​

排序功能的簽名是這樣的

中的Array.sort([的compareFunction])

請通過文檔,以獲得更好的主意的compareFunction

鏈接:array.sort MDN

+0

嗨Naveen ..這裏是什麼'a'&'b'? –

0

MDN

你可以通過你的比較功能參數排序功能。

該函數有兩個值從陣列相比,你需要返回01-1如下

var a = [...]; //your array 
a.sort(compareFunction); 

function compareFunction (a, b) 
{ 
    if (a is less than b by some ordering criterion) 
    return -1; 
    if (a is greater than b by the ordering criterion) 
    return 1; 
    // a must be equal to b 
    return 0; 
}