Я бы хотел, чтобы мой таймер обратного отсчета показывал двузначные числа, например «53:00» вместо «53:0». Не знаете, что здесь происходит? Спасибо!
function convertSeconds(s) {
var min = Math.floor(s / 60);
var sec = s % 60;
return nf(min, 2) + ':' + nf(sec, 2);
}
Думали, что это числовой формат? Нужно ли мне сделать его собственной функцией и ссылаться на нее с помощью nf? Какой дополнительный код вы ожидаете увидеть? Извините, новичок в кодировании. Спасибо за ваше время!
Если ваш код работает без ошибок, значит, где-то написана функция nf() — например, в библиотеке, которую вы включили, она не является встроенной частью JavaScript.
nf не является встроенной функцией Javascript, вам нужно будет показать, где она определена, иначе невозможно сказать, что это такое и что она делает.
Возможный дубликат Как форматировать числа, добавляя 0 к однозначным числам?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Чтобы заполнить нулями, вы можете сделать
function nf(num, places) {
var s = '0' + num;
return s.slice(places * -1);
}
function convertSeconds(s) {
var min = Math.floor(s / 60);
var sec = s % 60;
return nf(min, 2) + ':' + nf(sec, 2);
}
Должен дать вам то, что вы хотите
Где-то в вашем стеке кода должен быть nf(), я бы назвал код выше с другим именем, поскольку текущее поведение/зависимости nf() неизвестны.
Вы можете использовать padStart(), чтобы убедиться, что строка имеет определенную длину. Если это не так, он дополнит его тем, что вы хотите. В этом случае 0:
const nf = (n, c) => n.toString().padStart(c, '0');
function convertSeconds(s) {
var min = Math.floor(s / 60);
var sec = (s % 60)
return nf(min, 2) + ':' + nf(sec, 2);
}
console.info(convertSeconds(64))
console.info(convertSeconds(119))Не уверен, что вы хотите заполнить минуты нет.
Существует также Intl.NumberFormat(), у которого есть опция для минимальных цифр (хотя это кажется излишним для этого):
console.info(new Intl.NumberFormat('en-US', { minimumIntegerDigits: 2}).format(2));
console.info(new Intl.NumberFormat('en-US', { minimumIntegerDigits: 2}).format(59));Функция nf() должна быть такой:
function nf(num){
if (num < 10){
return "0"+num;
}
return num;
}
console.info(nf(7));
// 07
console.info(nf(11));
// 11
Вам не нужно преобразовывать в строку для условия. return n <= 9 ? '0' + n : n; будет немного короче…
Если под nf() вы подразумеваете функцию, которая форматирует Number как string заданных цифр, это может быть ее реализацией:
function nf(number, digits) {
var res = number.toString();
while (res.length < digits) {
res = "0" + res;
}
return res;
}
Демо:
function convertSeconds(s) {
var min = Math.floor(s / 60);
var sec = s % 60;
return nf(min, 2) + ':' + nf(sec, 2);
}
function nf(number, digits) {
var res = number.toString();
while (res.length < digits) {
res = "0" + res;
}
return res;
}
console.info(nf(4,2));
Ну, это зависит от того, что такое
nf()— вам нужно добавить этот код к вашему вопросу.