根據另一個數組從陣列中獲取月份範圍,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'),這是該功能的一部分。
示例
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' ]
廣告