if文条件分岐についてです。
どうも条件が正しく入らず、else if に入ってしまいます。
rangeで数値を24まで回しています。
Typescript
1_.range(24).forEach((h) => { 2 _.range(60).forEach((m) => { 3 let index: number = h * 60 + m; 4 let realHour: number = (h + 4) % 24; 5 // 5分刻みで残すデータ 6 if (index % 5 === 0) { 7 // 不足データ新規作成。 8 if (!returnMinuteList[index]) { 9 returnMinuteList[index] = { 10 timeClassName: "", 11 isZeroMinute: false, 12 hourString: "", 13 channelProgramList: [] 14 }; 15 } 16 17 // プロパティの初期化。 18 returnMinuteList[index].timeClassName = (String("00" + realHour).slice(-2) + String("00" + m).slice(-2)); 19 returnMinuteList[index].isZeroMinute = (m === 0); 20 returnMinuteList[index].hourString = String(realHour); 21 returnMinuteList[index].channelProgramList = []; 22 // 不要データはundefined 23 } else { 24 returnMinuteList[index] = undefined; 25 } 26 }); 27 if (0 <= h && h < 12) { 28 this.ampm = "午前"; 29 } else if (12 <= h && h < 24) { 30 this.ampm = "午後"; 31 }; 32 return this.ampm; 33 });
下記が該当のソースコードです。
011までは午前という表示23までは午後という表記にしたいと考えています。
12
条件として足らないのでしょうか?
※①〜④はコンソールに出力した結果です。
TypeScript
1console.log(h); // ① 0,1,2,3,4,5,6,7,8,9,10,11...23 2if (0 <= h && h < 12) { 3 console.log(h); // ② 0,1,2,3,4,5,6,7,8,9,10,11 4 this.ampm = "午前"; 5} else if (12 <= h && h < 24) { 6 console.log(h); // ③ 12,13,14,15,16...23 7 this.ampm = "午後"; 8}; 9console.log(h); // ④ 0,1,2,3,4,5,6,7,8,9,10,11...23 10return this.ampm;
↓コメントを受けて追加しました。
試したこと
HTML側では *ngIf を利用して表示させています。
これだと午前午後の表記になってしまいます。
これではngifの条件分岐がなされていないのでしょうか?
Angular
1<th *ngIf="minute.isZeroMinute" rowspan="12"><ng-container *ngIf="am">{{am}}</ng-container><ng-container *ngIf="pm">{{pm}}</ng-container>{{minute.hourString}}<br>時</th> 2
TypeScript
1 2export class Component { 3 4am: string = ""; 5pm: string = ""; 6 7 8if (0 <= h && h < 12) { 9 return this.am = "午前"; 10} else if (12 <= h && h < 24) { 11 return this.pm = "午後"; 12}; 13 14}
あなたの回答
tips
プレビュー