私は最近この問題に遭遇し、どこでも良い答えを見つけることができません。Javascript:アレイの最後に1回ループを再開
私は一度ループを再開したいが、一度は終わりに達するが、有限の時間だけループする。
この特定のコンテキストでは、週の配列があり、今日の曜日から次の7日間の日の名前をDate.getDay()
を使用して表示したい場合は、0(日曜日)から値を返します。 〜6(土曜日)。私は現在のループのために1つをスキップし続ける以外は、次の7日間の名前の配列を作成することができます。ここに私がこれまで持っているものがあります。
私の予想される出力は、次のとおりです。
['friday', 'saturday', 'sunday', 'monday', 'tuesday', 'wednesday', 'thursday']
const dayNames = [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
];
const rawDate = new Date();
let dayNum = rawDate.getDay();
const week = [];
for (let i = 0; i < 6; i++) {
if (dayNum + 1 === 7) {
dayNum = 0;
for (j = 0; j < todayNum; j++) {
week.push(dayNames[dayNum])
dayNum++
}
week.push(dayNames[dayNum]);
dayNum++
} else {
week.push(dayNames[dayNum + 1]);
dayNum++;
}
}
console.log(week);
は私がいることがわかります私の私「のために」に1がスキップされた理由ですが、私は私の頭を取得するように見えることができない「場合」どのように修正するかについて。ありがとうございました
予期した結果が得られる特定の日付を使用するようにサンプルを更新することをお勧めします。そうすれば、誰かが明日の質問を見ると、彼らはまだ期待される結果を得るでしょう。 'const rawDate = new Date(2017、4、10);' ... –
あなたが完了したforloopの数を追跡するためにあなたのループの外にvarを宣言したいと思うでしょう。その後、あなたのループでは、最終的なループインターラクションと同じになったら、インターレーターを0にリセットします。インタレータをリセットするときに、forループを実行した回数の合計をトラッキングします。あなたの終了条件(totalForLoops == numberOfTimeYouWantItToRun)をテストし、その真のときに戻ります。 – Ken
私はあなたがマイクと言っていることを見ます。また、@ニーナ、それは動作しますが、それは完全な7日間を表示していない...これは私の問題です。 – archae0pteryx