как с помощью функций(map, filter, find, every, some, reduce, reduceRight, sort) манипулировать строкой(арифметические действия)
let x = '10:25'
x=x.split(':')
let s1 = x[0],s2=x[1]
s2-=45
if(s2-45<0}{
s1--
}
let rez = s1+':'+s2
console.log(rez)
Есть строка разделённая с помощью split, нужно выполнить арифметическое действие на правой части а именно отнять от 45 чтобы получилось 10։0 и если значение правой стороны будет меньше 0, то от левой стороны отнимается -1, использовать date нельзя.
Ответы (2 шт):
Автор решения: grime
→ Ссылка
const input = '10:25'.split(':');
const solution = inp => (sub = '0:45'.split(':'), inp.map((t,i,a) => i===0 ? (a[1] - sub[1] < 0 ? (t < 1 ? 23 : t-1) : +t) : (t > sub[1] ? t-sub[1] : t-sub[1]+60)).join(':'));
console.log(solution(input));
Автор решения: Vahan
→ Ссылка
function solution(x){
x = x.split(":"); //10:45 ["10","45"]
let hour = +x[0]
let min = +x[1];
min-=45
if(min<0){
hour--
min=60+min
}
if(hour<0){
hour= 24+hour
}
return hour +":"+min
}
console.log(solution("10:25"))
console.log(solution("11:45"))
console.log(solution("12:0"))