ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน 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