我正在写一个简单的井字游戏,我试图检查不同的获胜状态。将不同的图块设置在一个数组中,以便检查我是否拥有三个最高空间
if (tableArr[0].hasClass('userTaken') && tableArr[1].hasClass('userTaken') && tableArr[2].hasClass('userTaken')){
select(); //ends game
}
我正在寻找一种缩短此时间的方法,我尝试了
tableArr[0,1,2].hasClass('userTaken')
,但是没有用。有什么建议么? 最佳答案
您可能会为此使用every
,但也需要对数组进行切片。举个例子:
tableArr.slice(0, 3).every(x => x.hasClass('userTaken'))
因此,使用
slice
获取数组的前三个元素,然后every
检查每个元素是否通过了测试。当然,如果这是井字,TAC,脚趾,则也需要检查对角线,使用
.slice
会比较麻烦。您也可以为此使用map
,例如[0,1,2].map(idx => tableArr[idx]).every(x => x.hasClass('userTaken'))