2016-03-09 96 views
4

在JavaScript/JQuery中处理TicTacToe。初学者程序员,但无法在网上找到。JavaScript - 检查数组中的所有值是否为空 - Array/Each/

此刻我有一个名为“game_board”的正常数组。该数组有9个值,它们是0-8。这不是'哈希'。

我正在寻找一个循环或类似的检查,如果数组中的所有值不为空。如果“game_board”数组中的所有值都不为空,则代码应该执行诸如[Alert(“Draw”)]之类的操作。如果数组中的任何值都有值,则该函数不应该执行任何操作。

这是我的代码尝试。任何想法都会令人敬畏。我的尝试是循环如果找到空值就会中断的理论。如果它没有找到空值,它将转到ELSE并报告'绘制'

// check draw 
for (var p = 0; p < 9; p++) { 
    if (game_board[p] === null) { 
     break; 
    } 
    else { 
     alert("Draw"); 
    } 
} 

非常感谢。我知道这可能是一个基本问题,但非常感谢任何答案。

请原谅我的新鲜事!不是100%确定的逻辑。也许与JQuery的东西将有所帮助!

+0

您是否希望仅在列表中的项*为空*的情况下才会发生警报? – towerofnix

+0

是的谢谢:)。想象一下TicTacToe有9个广场,没有赢家:P –

回答

11

使用Array.some检查,如果任何值都null

var isAtLeastOneNull = game_board.some(function(i) { return i === null; }); 

或者,使用Array.every做相反的检查:

var areAllNotNull = game_board.every(function(i) { return i !== null; }); 

演示:

var game_board = [true, true, true, true, true, true, true, null, true]; 
 

 
document.writeln('There is at least one null item: ' + game_board.some(function(i) { return i === null; })); 
 
document.writeln('<br />'); 
 

 
game_board = [true, true, true, true, true, true, true, true, true]; 
 

 
document.writeln('There is at least one null item: ' + game_board.some(function(i) { return i === null; }));

+0

这听起来很棒。我只是想让它起作用! –

+0

我想我一定是金鱼。或者可能已经太晚了!这是我怎么做你的解决方案? var isAtLeastOneNull = game_board.some(function(p){return p === null;}); \t如果(isAtLeastOneNull = FALSE){ \t \t警报( “画”) \t} –

+0

这已经很接近 - 只是改变'(isAtLeastOneNull = FALSE)''到(isAtLeastOneNull ===假)'。甚至更好,'(!isAtLeastOneNull)'。 –

相关问题