#javascript
Вопрос:
Код довольно хорошо работает с множественными числами. например: 150 вывод: 2 часа 30 минут, но когда я добавляю единственное число в часах или минутах, оно все равно выводит: часы и минуты вместо часа и минуты.
function timeConverter(number) {
var num = number
var hours = (num / 60);
var hrs = Math.floor(hours);
var minutes = (hours - hrs) * 60;
var min = Math.round(minutes);
return hrs " hours, " min " minutes."
}
console.log(timeConverter(1)
Комментарии:
1. Что не работает? Добавьте более подробную информацию
2. Что такое множественное число?
3. может быть 1 минута, 2 минуты
4. я пытаюсь заставить свой код работать для отдельных входов , например: когда я ввожу 1, он должен возвращать 0 часов, 1 минуту вместо 1 минуты.
5. простая проверка состояния не поможет?
Ответ №1:
Современный способ с шаблонным литералом и функцией
также удалено много ошибок в вашем коде, потому что это действительно просто
function timeConverter(number) {
const min = number % 60;
const hrs = (number - min) / 60;
const plural = v => v === 1 ? '' : 's';
return `${hrs} hour${plural(hrs)}, ${min} minute${plural(min)}.`;
}
console.log(timeConverter(1));
console.log(timeConverter(2));
Ответ №2:
Для этого вы можете использовать ternary
оператора.
function timeConverter(number) {
var num = number
var hours = (num / 60);
var hrs = Math.floor(hours);
var minutes = (hours - hrs) * 60;
var min = Math.round(minutes);
return hrs (hrs==1 ? " hour, " : " hours, ") min (min==1 ? " minute." : " minutes.")
}
console.log(timeConverter(1));
console.log(timeConverter(60));
Комментарии:
1. @НАТАНИЭЛЬ, пожалуйста, проверьте сейчас.
Ответ №3:
Вот один из самых простых способов
function timeConverter(number) {
var num = number
var hours = (num / 60);
var hrs = Math.floor(hours);
var minutes = (hours - hrs) * 60;
var min = Math.round(minutes);
var hrsUnit = hrs > 1? " hours, " : " hour, ";
var minsUnit = min > 1 ? " minutes." : " minute.";
return hrs hrsUnit min minsUnit;
}
console.log(timeConverter(10));