2017-04-23 5 views
2

配列のすべての要素が未定義と異なるかどうかチェックしたい。 array_mainには9つの要素が含まれています。JavaScriptのifステートメントをどのように短縮できますか?

私は以下のようにifを作成しました:

// Function checking is there a tie - 0:0 
var check_if_tie = function() { 
    if(array_main[0] !== undefined && array_main[1] !== undefined && 
     array_main[2] !== undefined && array_main[3] !== undefined && 
     array_main[4] !== undefined && array_main[5] !== undefined && 
     array_main[6] !== undefined && array_main[7] !== undefined && 
     array_main[8] !== undefined) { 
     alert("TIE!/REMIS!"); 
     return false; 
    } else { 
     console.log('Continue playing'); 
     return false; 
    } 
}; 

は何とかこのifを短縮することが可能ですか?

+1

配列の他の可能な値は何ですか? –

+0

配列の他の可能な値は0と1です。 – p7adams

+0

@ p7adams、私は 'every'メソッドを使って解決策を提供した最初の人でした。 :) –

答えて

4

あなたはarray_main配列からすべての要素を反復処理したいと仮定すると、あなたがArray#everyを使用することができます。

array_main.every(item=>item!=undefined); 

は、ここで簡単な例です。

!== undefinedの条件を満たすと、trueが返されます。少なくとも1つの要素がそれを渡さない場合は、falseを返します。

var array_main = [1,2,3]; 
 

 
var check_if_tie = function() { 
 
    if (array_main.every(v => v !== undefined)) { 
 
    alert("TIE!/REMIS!"); 
 
    return false; 
 
    } else { 
 
    console.log('Continue playing'); 
 
    return false; 
 
    } 
 
} 
 

 
check_if_tie();

+1

array.every()関数は私の問題を解決するのを助けました。 ここに私のスクリプトの一部があります。これは私のためにはうまくいきます。 //関数チェックは、未定義の配列とは異なる要素です。 var check_if_tie = function(要素、インデックス、配列){ return(要素!==未定義); } // TIEが存在するかどうかのチェック機能。 var display_if_tie = function(){ \t array_main.every(check_if_tie); \t if(array_main.every(check_if_tie)){ \t \t setTimeout(function(){alert( 'TIE/REMIS')}、600); \t}他{ \t \t assign_zero()。 \t \tコンソール。ログ( '続行'); \t} }; – p7adams

0

あなたはcallback方法を受け入れるevery方法を使用することができます。

array_main.every(function(item){ 
    return item!=undefined; 
}); 

またES6で受け入れarrow機能を使用することができます。

var array_main=new Array(9).fill(undefined); 
 
console.log(array_main.every(function(item){ 
 
    return item!=undefined; 
 
}));

0
var check_if_tie = function(){ 
    for(elem in array_main) 
    { 
     if(array_main[elem] == undefined) 
     { 
      alert("TIE!/REMIS!"); 
      return false; 
     } 
    } 
    console.log("Continue playing"); 
    return false; 
}; 
2

あなたは未定義のインデックスをチェックしているのthis.Oneを行うことができる方法がいくつかあります。

var array_main= [1,3,4,54,5,undefined,4,54] 
 
if(array_main.indexOf(undefined) > -1) { 
 
    alert("TIE!/REMIS!"); 
 

 
} else { 
 
    console.log('Continue playing'); 
 

 
}

+0

私はこのif文の中で何らかのループを使うと思います。 – p7adams

関連する問題