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

การสร้างเวลาที่ใกล้ที่สุดโดยใช้เวลาปัจจุบันใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้สตริง เวลาที่แทนเวลาในรูปแบบ "HH:MM"

ฟังก์ชันของเราควรจะสร้างเวลาที่ใกล้เคียงที่สุดถัดไปโดยใช้ตัวเลขปัจจุบันซ้ำ ใช้ซ้ำได้ไม่จำกัดจำนวนครั้ง

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ

ป้อนข้อมูล

const time = '19:34';

ผลผลิต

const output = '19:39';

คำอธิบายผลลัพธ์

เวลาที่ใกล้เคียงที่สุดถัดไปโดยเลือกจากหลัก 1, 9, 3, 4 คือ 19:39 น. ซึ่งจะเกิดขึ้นในอีก 5 นาทีต่อมา ไม่ใช่ 19:33 น. เพราะสิ่งนี้เกิดขึ้น 23 ชั่วโมง 59 นาทีต่อมา

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const time = '19:34';
const findClosestTime = (time = '') => {
   const [a, b, c, d] = [time[0], time[1], time[3], time[4]].map(x =>Number(x));
   const sorted = [a, b, c, d].sort((x, y) => x - y)
   const d2 = sorted.find(x => x > d)
   if (d2 > d) {
      return `${a}${b}:${c}${d2}`
   }
   const c2 = sorted.find(x => x > c && x <= 5)
   const min = Math.min(a, b, c, d)
   if (c2 > c) {
      return `${a}${b}:${c2}${min}`
   }
   const b2 = sorted.find(x => x > b && a * 10 + x <= 24)
   if (b2 > b) {
      return `${a}${b2}:${min}${min}`
   }
   const a2 = sorted.find(x => x > a && x <= 2)
   if (a2 > a) {
      return `${a2}${min}:${min}${min}`
   }
   return `${min}${min}:${min}${min}`
};
console.log(findClosestTime(time));

ผลลัพธ์

19:39