64

JavaScript では、すべてのオブジェクト項目が true に設定されているかどうかを知る必要があります。

次のオブジェクトがある場合:

var myObj = {title:true, name:true, email:false};

私はこのようなものを書くことができます:

 if(myObj.title && myObj.name && myObj.email){
 /*Some code */
};

しかし、私はそれを書く最も簡単な方法を探しています。例:

if(myObj all is true){
/*Some code */
};

内部に 10 ~ 20 個のアイテムを含む別のオブジェクトがあり、すべてが true かどうかを知る必要があります。

4

5 に答える 5

38

次のようなものはどうですか:

    function allTrue(obj)
    {
      for(var o in obj)
          if(!obj[o]) return false;
        
      return true;
    }
    
    var myObj1 = {title:true, name:true, email:false};
    var myObj2 = {title:true, name:true, email:true};

    document.write('<br />myObj1 all true: ' + allTrue(myObj1));
    document.write('<br />myObj2 all true: ' + allTrue(myObj2));

    

いくつかの免責事項:これはtrue、すべての値がtrue-ishである場合に返され、必ずしも True のブール値と正確に等しいとは限りません。また、プロトタイプを含む、渡されたオブジェクトのすべてのプロパティをスキャンします。これは必要なものである場合とそうでない場合がありますが、提供したような単純なオブジェクト リテラルでは正常に機能するはずです。

于 2013-06-14T21:46:49.613 に答える