嗨我有一個遊戲,我用JavaScript創建。 我有一個排行榜,每個第十人在遊戲中的插座使一個額外的空間。因此,從人11將創建一個不同的房間,並從房間1的排行榜不會顯示在房間2中。array.sort javascript,不排序後第10人
現在的問題: 當第11個人進來時,這種情況變得不合時宜。 的代碼:
users.sort(function (a, b) {
return b.score - a.score;
});
例如:8人顯示具有字母名稱時每個人的得分是0
A,B,C,d,E,F,G,H
例如:用11人示出了當每個人的得分是0
b,F,C,d,E,A,G,H與字母名稱,I,J,K
和0,1圍繞的那種移動和5個索引每個2秒。
它僅在第11個人加入時發生。 我已經嘗試減少每個房間的人5,仍然排序奇怪後第11人。 如果有人可能能夠解決這個問題,請讓我知道。
欲瞭解更多信息,當一個人連接到一個房間時,他們被推送到一個users []數組,並且應該始終處於最低默認值0分。 如果您需要其他信息,請告訴我。編號: 該名稱與分數相關聯。我寫了它,以便用戶按字母順序連接。 當用戶A連接時,排序應該只以用戶A結束。 然後,當B連接是因爲他被推送到用戶數組時,排序應該是A然後是B,並且當C連接相同的東西時分別發生。
編輯:用戶結構。
var currentPlayer = {
id: socket.id,
level: 1,
x: position.x.round(2),
y: position.y.round(2),
angle: 0,
score: 0,
type: type,
radius: radius,
facing: 0,
room: nameOfRoom,
lastChatSent: 0,
name: ""
};
感謝
您在這裏的唯一順序約束是在分數上,但您期望它們按字母順序返回?另外,人們的數據結構是什麼? – Dhunt
如果所有分數都爲0,那麼您顯示的輸出是正確的,因爲您只是根據分數進行排序。 – forgivenson
這是您想要的結果:具有相同得分的用戶仍然按照他們添加到列表的順序排序? – Culme