Javascript 连续三次检查宾果

Javascript 连续三次检查宾果,javascript,arrays,function,multidimensional-array,Javascript,Arrays,Function,Multidimensional Array,我是编程新手,我的朋友给了我以下问题 宾果游戏-给定一个数组,编写一个函数来检查是否有赢家(对角线、直线等方向的一行中有三个赢家) 我一直在努力这样设置它 function winCheck(bingo) { for (var i = 0; i < bingo[i].length; i++) { if (/* ??????? */) { /*?????*/ } else {

我是编程新手,我的朋友给了我以下问题

宾果游戏-给定一个数组,编写一个函数来检查是否有赢家(对角线、直线等方向的一行中有三个赢家)

我一直在努力这样设置它

      function winCheck(bingo) {
        for (var i = 0; i < bingo[i].length; i++) {
           if (/* ??????? */) {
              /*?????*/
           } else {
              /*?????*/
           }
        } 
      }
功能winCheck(宾果游戏){
对于(var i=0;i

我不知道该怎么做。我需要一个循环中的一个循环吗?就我目前所知,我只知道如何循环通过单个数组。提前谢谢。

是的,您可以使用嵌套循环来实现这一点,就像这样

for(var i = 0; i < bingo.length; i++)
{
    for(var j = 0; j < bingo[i].length; j++)
    {
        //do some stuff with bingo[i][j]
    }
}
for(变量i=0;i

如果需要更多关于循环体的帮助,请随时询问。

按照您想要的方式进行操作的代码太多了,所以请首先确定:这真的有必要吗?如果阵列的大小变化或未知,我们无法进行任何优化,我们的函数将从检查所有水平线开始:

function winCheck(bingo)
{
  // check for all values equals to 1 in any horizontal row:
  for (var i = 0; i < bingo.length; i++)
  {
    winner = true;

    for(var j=0; j < bingo[i].length; j++)
    {
      if(bingo[i][j] != 1)
      {
        winner=false;
        break;
      }
    }

    if(winner)
      return true;
  }

  // now the same code for for vertical rows
  // . . .

  // and finally two simple loops to check diagonals
  // . . .

  return false;
}
功能winCheck(宾果游戏)
{
//检查任何水平行中的所有值是否等于1:
for(var i=0;i
但如果数组的大小始终为3 x 3,则一切都会发生变化!我们可以运行一个循环来检查水平行和垂直行,最后如果中间单元有1个,对对角线做额外的检查:

function winCheck(bingo)
{
  var winner = false;
  for (i=0; i<3; i++)
    if(winner = (bingo[i][0]==1) && (bingo[i][1]==1) && (bingo[i][2]==1))
      break;
    else if(winner = (bingo[0][i]==1) && (bingo[1][i]==1) && (bingo[2][i]==1))
      break;

  if(!winner)
    if(bingo[1][1]==1)
      if(!(winner = (bingo[0][0]==1) && (bingo[2][2]==1)))
        winner = (bingo[0][2]==1) && (bingo[2][0]==1);

   return winner;
 }
功能winCheck(宾果游戏)
{
var=false;

对于(i=0;矩阵始终为3x3?@RobertoDeLaParra thanx!对矩阵n>3仍然错误的情况进行了修正,基于“对角线、直线向下等一行中的任意三个1”。假设这一点,n=4,这是第一行:[1,1,1,0]@罗伯托·德拉帕拉,也许你是对的,但正如我所理解的,宾果这个词在一行中的每个位置都是一个位数……因此,除非杰森澄清一些事情,否则我将保留我的答案,因为澄清是肯定的,它只需要在一行中的每个位置都是一个位数。谢谢!
function winCheck(bingo)
{
  var winner = false;
  for (i=0; i<3; i++)
    if(winner = (bingo[i][0]==1) && (bingo[i][1]==1) && (bingo[i][2]==1))
      break;
    else if(winner = (bingo[0][i]==1) && (bingo[1][i]==1) && (bingo[2][i]==1))
      break;

  if(!winner)
    if(bingo[1][1]==1)
      if(!(winner = (bingo[0][0]==1) && (bingo[2][2]==1)))
        winner = (bingo[0][2]==1) && (bingo[2][0]==1);

   return winner;
 }