我正在用 Javascript 开发一个简单的井字游戏。现在,为了检查获胜者,我有一个函数,它首先轮到谁,然后找到他们在板上有 X 或 O 的地方。他们拥有的空格被编号(1-8)并添加到数组中。到现在为止还挺好。
现在我正在尝试比较另一个数组,即包含所有获胜组合的数组:
var winningCombinations = [[1,2,3],[4,5,6],[7,8,9],[1,4,7],[2,5,8],[3,6,9],[1,5,9],[3,5,7]];
使用测试数组,它应该会成为赢家,因为它包含 2、5 和 8。
我的测试来源:
<script>
var test = [2,4,5,8]
var winningCombinations = [[1,2,3],[4,5,6],[7,8,9],[1,4,7],[2,5,8],[3,6,9],[1,5,9],[3,5,7]];
for(var x=0; x<winningCombinations.length; x++) {
if (winningCombinations[x].indexOf(test) > -1) {
alert("Win!");
} else {
alert ("No win.");
}
}
</script>
我认为现在它只是测试 [2,4,5,8] 作为一个完整的值 - 而不是内部单个数字的实例。这就是我难过的地方。如何检查测试数组是否以任何顺序匹配任何获胜组合值?