Сравните значения свойств массива из разных объектов - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть объект с именем «Player», обладающий такими свойствами, как «Score», «Turn», «Name» и т. Д. На основании количества игроков, которые выбирает пользователь, я создаю массив игроков.

По ходу игры я обновляю счет каждого игрока.Что мне нужно сделать, это сравнить «счет» текущего игрока со всеми другими игроками.Если оно выше, выигрывает указанный игрок.В настоящее время единственный способ, которым я смог это сделать, - создать временный массив со значениями очков всех игроков и переупорядочить массив с наивысшего на низший.Затем я проверяю, совпадает ли оценка текущего игрока со счетом в индексе 0 моего временного массива.Это может вызвать потенциальные проблемы, так как два игрока МОГУТ иметь одинаковый счет, и в этот момент у меня нет возможности соотносить счет в массиве временных данных с игроком, которому он принадлежит.м в настоящее время делает лучший выбор?Должен быть способ оптимизировать это.Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Вы можете просто просмотреть массив для получения наибольшего количества очков, а затем посмотреть, является ли он вашим игроком.

var playerInfo = [
    {name: "Bob", score: 70},
    {name: "Jill", score: 98},
    {name: "Ted", score: 96}
];

function findHighestScore() {
    // assumes there is always at least one entry in the playerInfo array
    var highestIndex = 0;
    var highestScore = playerInfo[0].score;
    for (var i = 1; i < playerInfo.length; i++) {
        if (playerInfo[i].score > highestScore) {
            highestIndex = i;
            highestScore = playerInfo[i].score;
         }
     }
     return(highestIndex);
}
0 голосов
/ 21 ноября 2011

Почему вы не можете перебрать массив игроков и просто сравнить счет каждого из них с текущим игроком?

Вместо того, чтобы хранить массив баллов, вы можете сохранить массив игроков, отсортированных по их счету?

Помогает ли это?

http://www.javascriptkit.com/javatutors/arraysort2.shtml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...