Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:在数组末尾重新启动循环一次_Javascript_Loops - Fatal编程技术网

Javascript:在数组末尾重新启动循环一次

Javascript:在数组末尾重新启动循环一次,javascript,loops,Javascript,Loops,我最近遇到了这个问题,在任何地方都找不到一个好的答案(因此这个问题) 我想在到达终点后重新开始循环,但循环次数有限 在这个特定的上下文中,我有一个一周中的天数数组,我想使用Date.getDay(),显示从一周中的今天开始的接下来7天的天数名称,它返回一个从0(星期日)到6(星期六)的值。我可以创建下一个7天的名称数组,但由于当前循环,我一直跳过一个。这是我到目前为止得到的 我的预期产出是: [‘星期五’、‘星期六’、‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’] const da

我最近遇到了这个问题,在任何地方都找不到一个好的答案(因此这个问题)

我想在到达终点后重新开始循环,但循环次数有限

在这个特定的上下文中,我有一个一周中的天数数组,我想使用
Date.getDay()
,显示从一周中的今天开始的接下来7天的天数名称,它返回一个从0(星期日)到6(星期六)的值。我可以创建下一个7天的名称数组,但由于当前循环,我一直跳过一个。这是我到目前为止得到的

我的预期产出是:

[‘星期五’、‘星期六’、‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’]

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);
const dayNames=[
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”,
“星期日”
];
const rawDate=新日期();
让dayNum=rawDate.getDay();
常数周=[];
for(设i=0;i<6;i++){
如果(dayNum+1==7){
dayNum=0;
对于(j=0;j
我确实看到我的“for”中的“if”是一个人跳过的原因,但我似乎不知道该如何解决。谢谢大家

您可以使用正确的索引

const dayNames=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”];
const rawDate=新日期();
让dayNum=rawDate.getDay();
常数周=[];
for(设i=0;i<6;i++){
推送(dayNames[(dayNum+i)%dayNames.length]);
}
控制台日志(周)您可以使用用于正确索引的

const dayNames=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”];
const rawDate=新日期();
让dayNum=rawDate.getDay();
常数周=[];
for(设i=0;i<6;i++){
推送(dayNames[(dayNum+i)%dayNames.length]);
}

控制台日志(周)您不需要重新启动循环,只需使用模运算符包装数组索引即可

您需要修正
dayNames
的顺序,使其与
getDay()
返回的内容相对应。循环需要运行7次,而不仅仅是6次才能完成整个星期

const dayNames=[
“星期日”,
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”
];
const rawDate=新日期();
const dayNum=rawDate.getDay();
常数周=[];
for(设i=dayNum;i控制台日志(周)您不需要重新启动循环,只需使用模运算符包装数组索引即可

您需要修正
dayNames
的顺序,使其与
getDay()
返回的内容相对应。循环需要运行7次,而不仅仅是6次才能完成整个星期

const dayNames=[
“星期日”,
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”
];
const rawDate=新日期();
const dayNum=rawDate.getDay();
常数周=[];
for(设i=dayNum;i控制台日志(周)尝试使用
%
运算符和一个循环:

const dayNames=[
“星期日”,
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”
];
const rawDate=新日期();
让dayNum=rawDate.getDay();
常数周=[];
for(设i=0;i<7;i++){
推送(dayNames[dayNum++%7]);
}

控制台日志(周)尝试使用
%
运算符和一个循环:

const dayNames=[
“星期日”,
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”
];
const rawDate=新日期();
让dayNum=rawDate.getDay();
常数周=[];
for(设i=0;i<7;i++){
推送(dayNames[dayNum++%7]);
}

控制台日志(周)如果您想要[明天,明天+1,…,明天+6]:

for (let i = 1; i <= 7; i++) {
  week.push(dayNames[(dayNum + i) % 7]);
}

for(让i=1;i如果你想[明天,明天+1,…,明天+6]:

for (let i = 1; i <= 7; i++) {
  week.push(dayNames[(dayNum + i) % 7]);
}

for(设i=1;i您需要
i<7
来获得接下来的整个7天,然后使用模运算符
%
,它返回除法的剩余部分和单个for循环将得到所需的结果

 const dayNames = [
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
  "Saturday",
  "Sunday"
];
const rawDate = new Date();
let dayNum = rawDate.getDay();
const week = [];
for (let i = 0; i < 7; i++) {
    week.push(dayNames[(dayNum + i) % dayNames.length]);
}
console.log(week);
const dayNames=[
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”,
“星期日”
];
const rawDate=新日期();
让dayNum=rawDate.getDay();
常数周=[];
for(设i=0;i<7;i++){
推送(dayNames[(dayNum+i)%dayNames.length]);
}
控制台日志(周);

您需要
i<7
来获得接下来的整个7天,然后使用模数运算符
%
,它返回除法的剩余部分和单个for循环将得到所需的结果

 const dayNames = [
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
  "Saturday",
  "Sunday"
];
const rawDate = new Date();
let dayNum = rawDate.getDay();
const week = [];
for (let i = 0; i < 7; i++) {
    week.push(dayNames[(dayNum + i) % dayNames.length]);
}
console.log(week);
const dayNames=[
“星期一”,
“星期二”,
“星期三”,
“星期四”,
“星期五”,
“星期六”,
“星期日”
];
const rawDate=新日期();
让dayNum=rawDate.getDay();
常数周=[];
for(设i=0;i<7;i++){
推送(dayNames[(dayNum+i)%dayNames.length]);
}
控制台日志(周);

我建议更新您的示例,使用一个特定的日期来生成您的预期输出。这样,如果有人明天看到这个问题,他们仍然会得到预期输出。您只需执行
const rawDate=new date(2017,4,10);
…您希望在循环外部声明一个var,以跟踪已完成的forloop的数量。然后在循环中,只要将interator重置为0,直到它等于最终的循环迭代。重置interator时,将var tracking增加到运行forloop的总次数。测试退出条件(totalForLoops==numberoftimeyouwantitorun)并在其为真时返回。我知道你在说什么,mike。还有@Nina,这很有效,但它不显示完整的7天。。。