Что-то не так, либо с моим кодом, либо с моим пониманием этого - PullRequest
0 голосов
/ 17 июня 2020

Задача состоит в том, чтобы создать функцию, которая, как только пользователи вводят свой возраст, сообщала бы им, сколько времени у них осталось, если бы они дожили до 90 лет - в днях, неделях и месяцах, при условии, что их 365 дней в году, 52 недели и 12 месяцев.

Это код, который я написал для задания, следуя всем правилам, которые мы рассмотрели с учителем до сих пор ... Но когда я запускаю его, он говорит NaN, и я понятия не имею, почему ...

function lifeInWeeks(age) {

    var maxDays = 90*365;
    var maxWeeks = 90*52;
    var maxMonths = 90*12;  
    
    console.log("You have approximately " + maxDays-(age*365) + " days, " + maxWeeks-(age*52) + " weeks, and " + maxMonths-(age*12) + " left.");
      

}

lifeInWeeks(27)

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Проблема в том, что вы используете два типа данных в console.log (): strings и methods.

Вы можете заключить вызовы функций в (), но вы также можете использовать запятые вместо +, когда у вас есть разные типы данных для регистрации.

function lifeInWeeks(age) {

    var maxDays = 90*365;
    var maxWeeks = 90*52;
    var maxMonths = 90*12;  
    
    console.log("You have approximately", maxDays-(age*365) , " days,", maxWeeks-(age*52), "weeks, and", maxMonths-(age*12), "left.");
      

}

lifeInWeeks(27)
0 голосов
/ 17 июня 2020

Вы используете «-» и «+». JS ожидает, что все это будет математическим уравнением, а затем терпит неудачу, потому что ваши строки явно не числа.

Чтобы JS обрабатывал "+" как конкатенацию строк, вам нужно заключить ваши фактические математические выражения в квадратные скобки:

  console.log("You have approximately " + (maxDays - (age * 365)) + " days, " + (maxWeeks - (age * 52)) + " weeks, and " + (maxMonths - (age * 12)) + " left.");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...