我可以分配一个变量来检查循环内的多个数组吗?

时间:2019-03-24 22:24:59

标签: javascript arrays variables

我正在尝试检查循环内的多个数组,所有数组都具有相同的索引。我不想对每个列表进行手动编码,而是希望对其进行软编码,以便每次函数循环时都可以对所有数组进行检查。我所有的数组都命名为: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 :(得分:0)

您可以将分数保存在数组中,并使用另一个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 ]

如果玩家数量也可以不同,您也可以将它们添加到数组中!您会得到一个第三循环,检查您需要为每条腿分配一个点的球员。