Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

รับช่วงเดือนจากอาร์เรย์โดยยึดตาม 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' ]