Могу ли я назначить переменную для проверки нескольких массивов внутри цикла? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь проверить несколько массивов внутри цикла, все с одинаковым индексом.Вместо того, чтобы вручную кодировать каждый список, я хотел написать его так, чтобы каждый раз, когда функция зацикливалась, он мог проверять все мои массивы.Все мои массивы названы: Score1-Score8, но всякий раз, когда этот код выполняется, он фактически не проверяет ни один из списков.

function checkHorizontal()
{

    var rowcount=0;
    var checkLists;
    var player1=0;
    var player2=0;

    checkLists="score"+rowcount;

    for (var i = 0; rowcount <= 8; i++) 
    {
        rowcount+=1;
        if(checkLists[rowcount]==1) 
        {
            player1+=1;
            player2=0;    
        }
        else if (checkLists[rowcount]==2)
        {
            player2+=1;
            player1=0;
        }

    }

}

1 Ответ

0 голосов
/ 25 марта 2019

Вместо присвоения каждому баллу имени переменной, имеющего индекс, вы можете сохранить баллы в массиве и использовать другой цикл for.

Вот пример, предполагая:

  • У нас есть два игрока
  • Игра состоит из неизвестного количества сетов
  • Набор состоит из неизвестного количества ног

const player1 = 1;
const player2 = 2;

const set1 = [ 1, 2, 1 ];
const set2 = [ 1, 2, 2 ];
const set3 = [ 2, 2, 1 ];

let player1Score = 0;
let player2Score = 1;

// Create a new array containing all sets:
const game = [ set1, set2, set3 ];

// Loop over every set in the game
for (let s = 0; s < game.length; s += 1) {
  const set = game[s];
  
  // Loop over the legs in every set
  for (let g = 0; g < set.length; g += 1) {
    const winner = set[g];
    
    if (winner === player1) player1Score += 1;
    if (winner === player2) player2Score += 1;
  }
}

console.log(`The final match score is player1 ${player1Score} vs player2 ${player2Score}`);

Для вашего конкретного случая вы можете определить game как [ score1, score2, score3, score4, score5, score6, score7, score8 ]

Если количество игроков также может отличаться, вы можете добавить их вмассив также!Вы получите третий цикл, проверяющий, какому игроку нужно назначить очко для каждого обрабатываемого вами этапа.

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