如何在多维数组中检查变量是否为真

How to check if variables are true with in a multi-dimensional array?

本文关键字:变量 检查 是否 数组      更新时间:2023-09-26

我试图调用这些数组并检查整个数组是否为真(如["cell1", "cell2", "cell3"])。我有我的HTML和JS下面。

这可能是相当容易的人来解决,我只是努力找到任何东西,以及如何解决它。

<tr>
            <td id="cell1" onclick="tic(this)"></td>
            <td id="cell2" onclick="tic(this)"></td>
            <td id="cell3" onclick="tic(this)"></td>
        </tr>
        <tr>
            <td id="cell4" onclick="tic(this)"></td>
            <td id="cell5" onclick="tic(this)"></td>
            <td id="cell6" onclick="tic(this)"></td>
        </tr>
        <tr>
            <td id="cell7" onclick="tic(this)"></td>
            <td id="cell8" onclick="tic(this)"></td>
            <td id="cell9" onclick="tic(this)"></td>
        </tr>
var win = [
            ["cell1", "cell2", "cell3"],
            ["cell1", "cell4", "cell7"],
            ["cell1", "cell5", "cell9"],
            ["cell2", "cell5", "cell8"],
            ["cell3", "cell6", "cell9"],
            ["cell3", "cell5", "cell7"],
            ["cell4", "cell5", "cell6"],
            ["cell7", "cell8", "cell9"]
        ];
        function tic(element) {
            element.textContent = "X";
            for (i = 0; i < win.length; i++) { 
                var thisWinningCombo = win[i];
                for (x = 0; x < thisWinningCombo.length; x++) { 
                    var cellId = thisWinningCombo[x];
                    var cellValue = document.getElementById(cellId).textContent;
                    console.log(cellId + ": " + cellValue);
                }
            }
        }

这是你想要达到的效果吗?如果找到获胜组合之一,则hasWon变量设置为true

var win = [
            ["cell1", "cell2", "cell3"],
            ["cell1", "cell4", "cell7"],
            ["cell1", "cell5", "cell9"],
            ["cell2", "cell5", "cell8"],
            ["cell3", "cell6", "cell9"],
            ["cell3", "cell5", "cell7"],
            ["cell4", "cell5", "cell6"],
            ["cell7", "cell8", "cell9"]
        ];
        function tic(element) {
            element.textContent = "X";
            for (i = 0; i < win.length; i++) { 
                var thisWinningCombo = win[i];
                var hasWon = true;
                for (x = 0; x < thisWinningCombo.length; x++) { 
                    var cellId = thisWinningCombo[x];
                    var cellValue = document.getElementById(cellId).textContent;
                    //console.log(cellId + ": " + cellValue);
                    hasWon = hasWon && (cellValue == "X");
                }
                if (hasWon){
                  console.log(hasWon);
                }
            }
        }
<table border="1" cellpadding="10">
<tr>
            <td id="cell1" onclick="tic(this)"></td>
            <td id="cell2" onclick="tic(this)"></td>
            <td id="cell3" onclick="tic(this)"></td>
        </tr>
        <tr>
            <td id="cell4" onclick="tic(this)"></td>
            <td id="cell5" onclick="tic(this)"></td>
            <td id="cell6" onclick="tic(this)"></td>
        </tr>
        <tr>
            <td id="cell7" onclick="tic(this)"></td>
            <td id="cell8" onclick="tic(this)"></td>
            <td id="cell9" onclick="tic(this)"></td>
        </tr>
</table>