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

javascriptweb developmentfront end technologyobject oriented programming

假设我们有两个字符串数组。第一个数组恰好包含 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'),它是功能的一部分。

示例

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' ]

相关文章