ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้สตริงเวลาในรูปแบบ “HH:MM:SS”
แต่มีปัญหานอกจากนี้ มีหลายครั้งที่สตริงขาดซึ่งหมายความว่าส่วน MM อาจเกิน 60 และส่วน SS อาจเกิน 60 เช่นกัน
ฟังก์ชันของเราควรทำการเปลี่ยนแปลงที่จำเป็นในสตริงและส่งคืนสตริงที่แก้ไขใหม่
ตัวอย่างเช่น −
"08:11:71" -> "08:12:11"
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const str = '08:11:71'; const rectifyTime = (str = '') => { if(!Boolean(str)){ return str; }; const re = /^(\d\d):(\d\d):(\d\d)$/; if (!re.test(str)){ return null; }; let [h, m, s] = str.match(re).slice(1,4).map(Number); let time = h * 3600 + m * 60 + s; s = time % 60; m = (time / 60 |0) % 60; h = (time / 3600 |0) % 24; return [h, m, s] .map(String) .join(':'); }; console.log(rectifyTime(str));
ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
08:12:11