根据另一个数组JavaScript从数组获取月份范围

假设我们有两个字符串数组。第一个数组恰好包含12个字符串,像这样的一年中的每个月-

const year = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];

第二个数组恰好包含两个字符串,表示这样的月份范围-

const monthsRange = ["aug", "oct"];

我们需要编写一个接受两个这样的数组的JavaScript函数。然后,该函数应从第一个数组中选择属于第二个范围数组指定范围内的所有月份。

像上面的数组一样,输出应该是-

const output = ['aug', 'sep'];

请注意,我们在输出中省略了范围('oct')的close元素,它是功能的一部分。

示例

const year = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']; const range = ['aug', 'dec'];
const getMonthsInRange = (year, range) => {
   const start = year.indexOf(range[0]);
   const end = year.indexOf(range[1] || range[0]);
   // also works if the range is reversed if (start <= end) {
         return year.slice(start, end);
   }
   else {
      return year.slice(start).concat(year.slice(0, end));
   };
   return false;
};
console.log(getMonthsInRange(year, range));

输出结果

控制台中的输出将是-

[ 'aug', 'sep', 'oct', 'nov' ]