Computer >> Máy Tính >  >> Lập trình >> Javascript

Nhận phạm vi tháng từ mảng dựa trên JavaScript mảng khác

Giả sử chúng ta có hai mảng chuỗi. Mảng đầu tiên chứa chính xác 12 chuỗi, một chuỗi cho mỗi tháng trong năm như thế này -

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

Mảng thứ hai, chứa chính xác hai chuỗi, biểu thị một phạm vi tháng như thế này -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có hai mảng như vậy. Sau đó, hàm sẽ chọn tất cả các tháng từ mảng đầu tiên nằm trong phạm vi được chỉ định bởi mảng phạm vi thứ hai.

Giống như đối với các mảng ở trên, đầu ra phải là -

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

Lưu ý rằng chúng tôi đã bỏ qua phần tử đóng của phạm vi ('oct') trong đầu ra, một phần chức năng của nó.

Ví dụ

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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