繁体   English   中英

从日期列表中确定第二天

[英]Determine the next day from a list of days

我有一个带有2个参数的函数。 第一个参数是一周中的当前日期(周一至周日为1-7,数字),第二个参数是可以具有不同数量的属性和值的对象:例如

    example1 = {day1: 5, day2: 2, day3: 1, day4: 7};
    example2 = {day1: 2, day2: 4, day3: 5};
    example3 = {day1: 2, day2: 6};

我想知道对象中的第二天(如果找到了当前日期,则第二天是当前日期),具体取决于一周中的当前日期。 例如:在星期六(currentDay = 6),example1的预期输出为7,example2的输出为2,example3的输出为6。该对象也可以为空(然后返回为currentDay)。 。 我的想法是遍历该对象并计算减去当前日期的日期,因此最低的数字将是第二天。 如果所有数字都是负数,那么我们有一个新的星期。 我对javascript很陌生。 这是我的尝试,但我无法使其正常工作。

_determineNextDay = (currentDay, days) => {
    let negativeCheck = 0;
    let nextDay = currentDay;
    let countDays = 0;
    let calc = 0;
    for (let i in days) {
        countDays++;
        calc = days[i] - currentDay;
      if (calc < 0) {
        negativeCheck++;
      };
      if (calc >= 0 && calc < nextDay) {
        nextDay = calc + currentDay;
      };
    };
    calc = 0;
    if (negativeCheck == countDays && countDays > 0) {
      for (let i in days) {
        calc = days[i] - currentDay;
        if (calc < nextDay) {
          nextDay = calc;
        };
      };
      nextDay = nextDay + currentDay;
    };
    return nextDay;
  };

 const find_closest_day = () => { const picked_days = Array .from( document.querySelectorAll( 'input:checked' )) .map( checkbox => checkbox.getAttribute( 'data-day' )) const current_day = new Date().getDay() || 7; const closest_day = picked_days.find( day => day >= current_day ) || picked_days.sort().shift() || current_day; alert( closest_day ); }; document.querySelector( 'button' ).addEventListener( 'click', find_closest_day ); 
 <ul> <li> <input type="checkbox" data-day="1"> <span>Monday</span> </li> <li> <input type="checkbox" data-day="2"> <span>Tuesday</span> </li> <li> <input type="checkbox" data-day="3"> <span>Wednesday</span> </li> <li> <input type="checkbox" data-day="4"> <span>Thursday</span> </li> <li> <input type="checkbox" data-day="5"> <span>Friday</span> </li> <li> <input type="checkbox" data-day="6"> <span>Saturday</span> </li> <li> <input type="checkbox" data-day="7"> <span>Sunday</span> </li> </ul> <button>Closest</button> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM