我需要帮助我的游戏得分表。
-1 - 我有4个变量:
var Player1Score= 44;
var Player2Score= 12;
var Player3Score= 45;
var Player4Score= 26;
- 2 - 我制作一个数组:
var MyArray=[Player1Score,Player2Score,Player3Score,Player4Score];
- 3 - 对数组进行排序:
MyArray.Sort();
- 4 - 打印:
---------- ----------高分
45
44
26
12
我的问题是:我如何打印订单中的玩家姓名?
就像这样:
---------- ----------高分
PLAYER 3 45
PLAYER 1 44
PLAYER 4 26
PLAYER 2 12
感谢提前。问候
答案 0 :(得分:1)
存储您的得分数据:
scores = [
{ name: "John", score: 123 },
{ name: "Joe", score: 234 }
]
如果您没有姓名,请使用播放器索引等任何其他属性。
然后使用自定义排序功能对数据进行排序:
scores.sort(compareScores);
并提供自定义排序功能:
function compareScores(a, b)
{
return a.score - b.score;
}
如果您想要不同的订单,您可能需要在此功能中交换a和b。
像这样打印:
for (i = 0; i < scores.length; i++)
{
name = scores[i].name;
score = scores[i].score;
... do something with name and score ...
}
答案 1 :(得分:0)
var score_map = {score1 : player1, score2 : player2, score3 : player3,
score4 : player4};
var score_array = [score1,score2,score3,score4].sort();
for (var score in score_array) {
your_output_function(score_map[score]+" - "+score);
}
将分数与玩家名称相关联,并将关联存储为javascript对象。获取分数并对其进行排序,然后迭代键并使用具有分数/玩家关联的对象打印出玩家及其分数。