Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为codecademy编写javascript函数_Javascript_String_Return_Negative Integer - Fatal编程技术网

为codecademy编写javascript函数

为codecademy编写javascript函数,javascript,string,return,negative-integer,Javascript,String,Return,Negative Integer,花一些时间尝试和学习Javascript以成为更好的开发人员。我对这段代码有点问题 function howOld (age, year) { let theCurrentYear = 2020; const yearDifference = year - theCurrentYear; const newAge = Math.abs(age + yearDifference); const positiveNewAge = newAge * -1; if (newAg

花一些时间尝试和学习Javascript以成为更好的开发人员。我对这段代码有点问题

function howOld (age, year) {
  let theCurrentYear = 2020;
  const yearDifference = year - theCurrentYear;
  const newAge = Math.abs(age + yearDifference);
  const positiveNewAge = newAge * -1;
  
  if (newAge > age) {
    return `You will be ${newAge} in the year ${year}`;
  } else if (newAge < 0) {
    return `The year ${year} was ${positiveNewAge} years before you were born`;
  } else if (newAge > 0 && newAge < age) {
    return `You were ${positiveNewAge} in the year ${year}`;
  }
};

console.log(howOld(28,2019));
功能多大年龄(年龄、年份){
让当前年份=2020年;
const year difference=年份-当前年份;
const newAge=Math.abs(年龄+年差);
const positiveNewAge=newAge*-1;
如果(新年龄>年龄){
return `您将在${year}年${newAge}`;
}else if(新年龄<0){
return`您出生前${year}年是${positiveNewAge}年';
}else if(newAge>0&&newAge
以下是它应该做的:

编写一个函数howOld(),该函数有两个数字参数,年龄和年份,并返回当前处于该年龄的人在该年的年龄。处理三种不同的情况:

如果年份是将来,则应以以下格式返回字符串:

“你将在[过去的一年]达到[计算年龄]” 如果年份在他们出生之前,则应按以下格式返回字符串:

'年[过去的年份]是你出生前的[计算年数] 如果年份在过去但不是在此人出生之前,则应按以下格式返回字符串:

“你在[过去的一年]是[计算年龄]”


我遇到的问题是将newAge设置为正数,以便将其作为正数传递到字符串上。我尝试了Math.abs()并将newAge乘以-1,但我似乎无法将其变为正数。

感谢@vlaz让我再次尝试。这是我再次尝试后得出的答案

function howOld (age, year) {
  let theCurrentYear = 2020;
  const yearDifference = year - theCurrentYear;
  const newAge = age + yearDifference;
  const positiveNewAge = Math.abs(newAge);
  
  if (newAge > age) {
    return `You will be ${newAge} in the year ${year}`;
  } else if (newAge < 0) {
    return `The year ${year} was ${positiveNewAge} years before you were born`;
  } else if (newAge > 0 && newAge < age) {
    return `You were ${positiveNewAge} in the year ${year}`;
  } else if (year === theCurrentYear) {
    return `You are ${age} in the year ${2020}`;
  }
};

console.log(howOld(28,1991));
功能多大年龄(年龄、年份){
让当前年份=2020年;
const year difference=年份-当前年份;
const newAge=年龄+年差;
const positiveNewAge=Math.abs(newAge);
如果(新年龄>年龄){
return `您将在${year}年${newAge}`;
}else if(新年龄<0){
return`您出生前${year}年是${positiveNewAge}年';
}else if(newAge>0&&newAge
newAge=Math.abs(年龄+年差)
只会返回一个正数,所以
positiveNewAge=newAge*-1
只会产生一个负数。所以如果我把positiveNewAge=Math.abs(newAge)放在后面,它应该是一个正数,对吗?没关系。我发誓我几分钟前就试过了,但没用P老实说,这是最好的办法。也许可以做得短一点,但它不会那么可读和可维护。我会坚持这一点。更容易调试和理解。