销毁if语句

有什么办法可以使它更短更优雅?

if (
       (start.format('YYYY-MM') === leftCalendar.month.format('YYYY-MM') ||
         start.format('YYYY-MM') === rightCalendar.month.format('YYYY-MM')) &&
       (end.format('YYYY-MM') === leftCalendar.month.format('YYYY-MM') ||
         end.format('YYYY-MM') === rightCalendar.month.format('YYYY-MM'))
   )
     {
       console.log('both dates already visible')
       return;
     }
评论
回家吃饭
回家吃饭

使用变量:

const formattedStart = start.format('YYYY-MM');
const formattedEnd = end.format('YYYY-MM');
const formattedLeft = leftCalendar.month.format('YYYY-MM');
const formattedRight = rightCalendar.month.format('YYYY-MM');

if (
  (formattedStart === formattedLeft || formattedStart === formattedRight) &&
  (formattedEnd === formattedLeft || formattedEnd === formattedRight)
) {
  console.log('both dates already visible')
  return;
}

...或使用某种功能进一步干燥(可能过大):

const formattedLeft = leftCalendar.month.format('YYYY-MM');
const formattedRight = rightCalendar.month.format('YYYY-MM');

const dateIsVisible = date => {
  const formatted = date.format('YYYY-MM');
  return formatted === formattedLeft || formatted === formattedRight;
};

if (dateIsVisible(start) && dateIsVisible(end)) {
  // ...
}
点赞
评论