2016-04-09 4 views
0

私は2つのデータベースプロパティのスラッグを作成する関数を持っていますが、レコードのデータが存在する場合のみ2つの値のスラッグを返すようにします。このロジックを作成するには、両方のフィールドにnull値があるかどうかを調べ、ステートメントがtrueまたはfalseの場合にレンダリングするifおよびelseステートメントを作成することにしました。 null値を持つレコードがいくつかありますが、まだ "Statement false"というconsole.logがトリガーされていて、理由を理解できません。私がコンソールに自分自身で変数を記録すると、それらのレコードに対してnullが返されます。私の声明がうまくいかない理由は何ですか?ヌルレコードElseステートメントを誤ってトリガーする

コンソールログ:

null //startDateValue no value 
null //endDateValue no value 
Statement false //Wrong conclusion. "Statement true" should have been triggered 
Sat Mar 05 2016 19:00:00 GMT-0500 (EST) 
Thu Apr 07 2016 20:00:00 GMT-0400 (EDT) 
Statement false //Correct conclusion. Both values are present 

機能:

dataDateRangeSlug: function(){ 
      var startDateValue = this.getDataValue('dataDateStart'); 
      var startDate = new Date(startDateValue); 
      var momentStartDate = moment(startDate).utc().format("MM/DD/YYYY"); 

      var endDateValue = this.getDataValue('dataDateEnd'); 
      var endDate = new Date(endDateValue); 
      var momentEndDate = moment(endDate).utc().format("MM/DD/YYYY"); 

      console.log(startDateValue); 
      console.log(endDateValue); 

      if (startDateValue && endDateValue == null){ 
       console.log("Statement true"); 
      } else { 
       console.log("Statement false"); 
       return momentStartDate + ' - ' + momentEndDate; 
      }   
     }, 

答えて

0
if (startDateValue && endDateValue == null){ 
    console.log("Statement true"); 
} 

startDateValueが設定されendDateValueがnullされたときに、この状態が確認されます。

あなたは、このことによってそれを修正することができます。

if (startDateValue == null && endDateValue == null){ 
    console.log("Statement true"); 
} 

&&AND 2の間の条件である、あなたはそれを行うと、両方の変数がnullチェックするためにそれを使用することはできません。

関連する問題