массив начала недели javascript до X дней - PullRequest
1 голос
/ 09 июля 2020

У меня logi c проблема с началом недели. Вот пример кода ниже.

WeekStarts(WeekN) {
  let WeekBD = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
  let ArrIndex = WeekBD.findIndex(WeekN);    
    
  for (let u = 0; u < WeekBD.length; u++) {
    if (ArrIndex == 6) {
 
    } else {
    
    }
  }
    
}

Как будто я выбираю из раскрывающегося списка, который имеет с понедельника по воскресенье в качестве значения, теперь я хочу выбрать с этого дня до 5 дней в неделю . Например, как если бы я выбрал субботу в качестве дня начала недели, тогда в целом 5 дней будут с субботы по среду, то есть 5 дней, а не 7.

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Как упоминалось в комментариях, вы можете использовать оператор modulo (%), если хотите найти только дни начала / окончания

const getDaysFrom = (weekday, noOfDays) => {
  const weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
  , weekdayIndex = weekdays.indexOf(weekday)

  console.log(
    "Start:", weekday, 
    "Days:", noOfDays, 
    "End:", weekdays[(weekdayIndex + noOfDays - 1) % weekdays.length] 
  )
}

getDaysFrom('Saturday', 5)
getDaysFrom('Thursday', 2)
getDaysFrom('Tuesday', 6)
getDaysFrom('Friday', 4)
1 голос
/ 09 июля 2020

Пожалуйста, попробуйте следующий код:

    function WeekStarts(WeekN) {
         let WeekBD = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
        let ArrIndex = WeekBD.indexOf(WeekN);    
        var i = 1;

        while(i <= 5){
           if(ArrIndex > 6){ ArrIndex = 0 };
           console.log(WeekBD[ArrIndex]);
          i++;
          ArrIndex++;
      }
   }
...