2012-04-09 56 views
2

我明白了JS的.sort()函數不夠好,我對多維數組一個鬆散的把握,但我有點卡住了。下面是我得到了什麼:JavaScript編程的.sort()'荷蘭國際集團成績的多維數組訂購玩家名稱

var player1 = ["bob", 20]; 
var player2 = ["jon", 40]; 
var player3 = ["tim", 10]; 
var scores = [player1[1], player2[1], player3[1]]; 

scores.sort(sortfunc); 

function sortfunc(a,b){ 
    return a - b; 
} 

alert(scores); 

顯然這正確排序分數,但我要的是在警報()根據自己的分數,例如適當的命令球員名字蒂姆,鮑勃,瓊。我不一定要找人直接發佈答案,但向正確的方向提示一點也不會傷害!

此外,有沒有更好的(即清潔,簡單,你有什麼)使用jQuery這樣的方式?我知道這並不重要,但我只是想知道它在jQuery中的樣子。

謝謝您的閱讀。

+0

讓我澄清一下:你想用正確的名稱以及球員進行排序? – 2012-04-09 03:49:36

+0

我想整理的球員會以及工作,是的。我只是想能夠正確地命名誰是第一,第二,第三等,不管它是如何完成的。 – daveycroqet 2012-04-09 03:51:03

+0

我已經添加了一個答案,請看看,如果這符合您的要求:) – 2012-04-09 03:51:27

回答

3

通行證整個陣列中scores和你sortFunc提取的第一個元素:

http://jsfiddle.net/PS2wS/

var player1 = ["bob", 20]; 
var player2 = ["jon", 40]; 
var player3 = ["tim", 10]; 
var scores = [player1, player2, player3]; 

scores.sort(sortfunc); 

function sortfunc(a,b){ 
    return a[1] - b[1]; 
} 
+0

這絕對是我想要的。我通過傳遞整個數組然後按分數排序,看看你做了什麼。不幸的是,我完全不明白爲什麼經過整個陣列工作方式是這樣的,所以我想我對多維數組的把握是脆弱的最好的。無論如何,謝謝你解決它。 – daveycroqet 2012-04-09 03:58:44

+0

我將授予你答案3分鐘的時候,它可以讓我。 =) – daveycroqet 2012-04-09 03:59:05

+0

@daveycroqet sort()的第一個參數中的回調函數接受兩個參數,它是調用數組sort()的直接第一級成員。所以在我的回答中,a和b應該是player1,player2和player3。我們通過對playerX的第一個元素進行減法來告訴它如何返回訂單,這是得分。 – 2012-04-09 04:00:38

相關問題