Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查嵌套forLoop中的所有元素是否为false,并在变量中返回/存储答案?反应JS_Javascript_Reactjs - Fatal编程技术网

Javascript 如何检查嵌套forLoop中的所有元素是否为false,并在变量中返回/存储答案?反应JS

Javascript 如何检查嵌套forLoop中的所有元素是否为false,并在变量中返回/存储答案?反应JS,javascript,reactjs,Javascript,Reactjs,我有一张5 x 5的桌子,上面有不同颜色的单元格。如果所有单元格都变成一种颜色,则用户“获胜” 表: const MainBoard = Array.from({length: this.props.nrows}).map((ignored, rowIndex) => ( <tr> {Array.from({length: this.props.ncols}).map((x, cellIndex) => ( <

我有一张5 x 5的桌子,上面有不同颜色的单元格。如果所有单元格都变成一种颜色,则用户“获胜”

表:

    const MainBoard = Array.from({length: this.props.nrows}).map((ignored, rowIndex) => (
      <tr>
        {Array.from({length: this.props.ncols}).map((x, cellIndex) => (
          <Cell key={`${rowIndex}-${cellIndex}`}
                isLit={this.state.board[rowIndex][cellIndex]}
                flipCellsAroundMe={() => this.flipCellsAround(`${rowIndex}-${cellIndex}`)}
          />
        ))}
      </tr>
    ));

    return (
      <table className="Board">
        <tbody>
          <h1>BOARD</h1>
          {MainBoard}
        </tbody>
      </table>

    );
  }

提前感谢:)

与数学中的求和一样,and(
&&
)具有关联性和交换性


这意味着,如果您在循环中重复更新您的
hasWon
,执行类似
hasWon=hasWon&&!cellValue
,它将产生与检查每个单元格是否为假相同的结果。

我不知道您在什么环境下使用它,但我以前做过类似的事情。基本上,您正在生成输出,但无法查看单元格的状态,对吗? 在这种情况下,我要做的是添加一个事件处理程序(可能是onClick),如下所示:

onclick(e){
let idOfElement = e.target.id;
let anyOtherAttribute = e.target.*anyOtherAtrribute*
}
此其他属性可以是的道具

你可以用这个。如果你不明白这个答案,请在下面随意评论,这样我可以帮助你解决类似以下问题:

const matrix = [
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
];
let won = true;
for(let i=0; i<matrix.length; i++) {
    if(!won) {
        break;
    }
    for( let j=0; j<matrix[i].length; j++) {
        if(matrix[i][j]) {
            won = false;
            break;
        }
    }
}
console.log(won);

在嵌套循环中不使用
i
变量。
myBoard
是平面阵列还是阵列阵列?对于数组数组,您需要参考
myBoard[j][i]
,对于平面数组,您需要参考
myBoard[j*myBoard.length+i]
。关于您最初的问题,可以从一个简单的例子开始,即如何确定2个布尔变量,然后是3个布尔变量的所有值都为假,然后尝试将其外推到嵌套循环。@IanWilson
myBoard
是一个数组数组:
(5)[数组(5),数组(5),数组(5),数组(5),数组(5)]0:(5)[假,假,真,真,真]1:(5)[真,假,假,假,真]2:(5)[假,假,假,假]3:(5)[假,真,假,假,假,假]4:(5)[false,false,true,false,false]
这是我想要的,但我也要好好看看它,看看它是怎么回事,为什么!为什么你要在第一个循环中检查Win是否为false?@Arthurubens只要我找到一个“true”值我从第二个循环中退出,然后我必须从第一个循环中退出。这就是我检查它的原因。要避免这种检查,可以使用while()控制,甚至转到。最后一个是最快的方法。好的,谢谢你的解释和代码帮助,我将写下:)嘿,我通过
控制台知道单元格的状态。记录
它们,但我只需要循环所有单元格,并返回它们是否都
false
,如果单元格的调用等于false,则返回美国呃赢得了比赛!哦,就像电影里赌场里的那些东西一样。为了颜色。
const matrix = [
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
];
let won = true;
for(let i=0; i<matrix.length; i++) {
    if(!won) {
        break;
    }
    for( let j=0; j<matrix[i].length; j++) {
        if(matrix[i][j]) {
            won = false;
            break;
        }
    }
}
console.log(won);
const matrix = [
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, false],
    [false, false, false, false, true],
];

function hasWon(matrix) {
    let won = true;
    loops: for (let i = 0; i < matrix.length; i++) {
        for (let j = 0; j < matrix[i].length; j++) {
            if (matrix[i][j]) {
                won = false;
                break loops;
            }
        }
    }
    return won;
}

console.log(hasWon(matrix));
const won = matrix.join().indexOf('true') === -1