【问题标题】:week start array javascript till X days周开始数组 javascript 直到 X 天
【发布时间】:2020-07-09 17:53:48
【问题描述】:

我在一周开始时有一个逻辑问题。下面是一个代码示例。

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 {
    
    }
  }
    
}

好像我从具有 Monday to Sunday 作为值的下拉列表中选择现在我想从那一天选择直到 每周 5 天
例如。好像我选择星期六作为一周的开始日,那么它的总 5 天将是星期六到星期三,总共 5 天而不是 7。

【问题讨论】:

  • 所以你的u需要从第一天的索引开始,然后你需要循环直到你有5个。如果您在获得 5 个之前到达循环的末尾,请从 0 开始。
  • 如果您只需要两天,即开始日和结束日,那么您已经有了开始日的ArrIndex。然后结束日只是 (ArrIndex + 5) % 7 的索引。

标签: javascript arrays logic


【解决方案1】:

请尝试以下代码:

    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++;
      }
   }

【讨论】:

    【解决方案2】:

    如 cmets 中所述,如果您想查找刚刚开始/结束的日期,可以使用 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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多