2017-08-28 11 views
-3

私は条件を内部に持っています。私はコードを実行すると、私は条件を渡すことができますが、私の条件の中には実行されないループがあります。 私のループは実行されていません

コンストラクタ

currentDate = new Date(); 

私のコンソールでクラス

if (form.value.packType == "Per Week") { 
      console.log("I could able to see this console"); 
      for (var a = this.currentDate.getDate(); a < 8; a++) { 
       console.log("I could not see this console",a) 
      } 
    } 

内でこの行の上の行私でしたが、「週」の値を参照することが私のコンソールを見ることができません私のログの中に。

誰かが私を助けてくれますか?

+1

へのリンクか? – Vega

+0

私は条件を渡すことができた、私はループ内の値を見ることができませんでした –

+0

場合は、文の前にconsole.log(form.value.packType)を実行して "週ごと"を確認してください – Vega

答えて

0

forループでは、これを行うとa = this.currentDate.getDate();となり、 `28 'となり、ループ実行条件はfalseになり、まったく動作しません。

必要なのは、現在の日付の日を取得して7日間ループを実行し、setDate()メソッドを使用して日付を取得することです。これは、あなたがそれを行うべきかである:「週」

if (form.value.packType == "Per Week") { 

    // get the current day 
    let currentDateDay = this.currentDate.getDate(); 

    // get the next 7 dates from currectDate 
    for(var a=1;a<=7;a++){ 
     // Get the next date 
     let nextDate = new Date(); 
     nextDate.setDate(currentDateDay+a); 
     console.log(nextDate); 
    } 
} 

「週」Plunker Demo

0

今日の日付は例えばa = 28なので、a < 8のような条件があるので、条件がfalseになり、ループが1つも実行されずにループから抜けるようになります。

0

コンソールにcurrentDate.getDate()を記録すると、値が28であることがわかります。これは8より大きいため、ループは実行されません。

console.log(currentDate.getDate()) 

おそらくループ内の状態があなたを助けようとしているかを明確にする必要があります。

関連する問題