Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript sử dụng một chuỗi, thời gian, biểu thị thời gian ở dạng "HH:MM".
Hàm của chúng ta được cho là hình thành lần gần nhất tiếp theo bằng cách sử dụng lại các chữ số hiện tại. Không có giới hạn về số lần một chữ số có thể được sử dụng lại.
Ví dụ:nếu đầu vào của hàm là
Đầu vào
const time = '19:34';
Đầu ra
const output = '19:39';
Giải thích đầu ra
Thời gian gần nhất tiếp theo được chọn từ các chữ số 1, 9, 3, 4, là 19:39, xảy ra 5 phút sau đó. Đó không phải là 19:33, vì điều này xảy ra sau 23 giờ 59 phút.
Ví dụ
Sau đây là mã -
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));
Đầu ra
19:39