关于Javascript(数组)中的领导委员会请帮助我

时间:2011-03-19 06:12:18

标签: javascript

我需要帮助我的游戏得分表。

-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

感谢提前。问候

2 个答案:

答案 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对象。获取分数并对其进行排序,然后迭代键并使用具有分数/玩家关联的对象打印出玩家及其分数。