【问题标题】:How to check if variables are true with in a multi-dimensional array?如何检查多维数组中的变量是否为真?
【发布时间】:2016-08-29 06:50:27
【问题描述】:

我正在尝试调用这些数组并检查整个数组是否为真(如 [“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);
                }

            }
        }

【问题讨论】:

    标签: javascript html arrays


    【解决方案1】:

    这是您想要实现的目标吗?如果找到其中一个获胜组合,则 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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 2013-08-26
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 2018-01-05
      • 2015-09-15
      相关资源
      最近更新 更多