我们需要编写一个 JavaScript 函数,它接受一个字符串 time,它以“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