Есть задача. Написать функцию, которая принимает время (часы, минуты, секунды) и выводит его на экран в формате «чч:мм:сс». Если при вызове функции минуты и/или секунды не были переданы, то выводить их как 00. Я сделал(но не правильно) её так Но когда я хочу вызвать функцию пропустив параметр в данном случае b, то получается такой синтаксис что между двумя другими параметрами стоят две запятые. Как в данном случае правильно вызвать функцию что бы можно было указать часы(a) и секунды(c) не указывая минуты(b)
function timeStr(a,b,c){
if ( c == undefined) {
let str = `${a}:${b}:00`;
return str;
}
else if ( b == undefined) {
let str = `${a}:00:${0}`;
return str;
}
else {
let arr = [a, b, c];
let str = arr.join(':');
return str;
}
}
alert(timeStr(24,,23));
function setTime(h) {
return function setMinutes(m = 0) {
return function setSeconds(s = 0) {
return `${h}:${m}:${s}`
}
}
}
var time = setTime(22)()(16);
console.log(time);
со стрелочными функциями может выглядит чуть чуть опрятнее:
const setTime = h => {
return (m = 0) => {
return (s = 0) => {
return `${h}:${m}:${s}`
}
}
}
var time = setTime(22)()();
console.log(time);
А если передать время в функцию как строку, а потом разбить ее на массив по запятым, проверить каждый элемент и если он пустой, то меняем его на '00', и потом обратно массив загоняем в строку.
function timeStr(t){
t=t.split(',').map(i=>!i?'00':i);
return t.join(':');
}
alert(timeStr('24,,23'));
А пусть будет один объект в качестве аргумента... вместо 3-х чисел)
let time = {h: 5, s: 7};
console.log( timeStr( time ) );
function timeStr(obj){
return [
( addZero( obj.h ) || "00" ),
( addZero( obj.m ) || "00" ),
( addZero( obj.s ) || "00" ),
].join(":");
}
function addZero(n){
if( !isNaN(n) ){
return n > 9 ? n : "0" + n;
}
}
Сразу создается массив. Каждый его элемент взят в скобки, чтобы в итоге туда попал правильный результат вычислений: Попытка достать число из объекта по соответствующему ключу. Если его там нет и вернулось undefined ( уже в результате функции addZero )- для такого случая предусмотрено ИЛИ || "00"
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как обратиться к вложенной функции и вложенной в нее функции?
Возможно ли в JavaScript округлять числа по следующей схеме:
Появляется много ошибок и при нажатии на кнопку добавляется +1 ошибка
Совсем запутался с процентами в наличии имеем wordpress и плагин cost calculator (внутри него условия по сути на JS ) делаю калькуляторы ипотеки с разными...