【问题标题】:Writing a javascript function for codecademy为 codecademy 编写一个 javascript 函数
【发布时间】:2021-01-27 23:05:03
【问题描述】:

花一些时间尝试学习 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));

这是它应该做的:

编写一个函数 howOld(),它有两个数字参数,age 和 year,并返回当前处于该年龄的某个人在该年已经(或将要)的年龄。处理三种不同的情况:

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

'您将在[过去年份]的那一年[计算年龄]' 如果年份是他们出生之前的年份,则应返回以下格式的字符串:

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

'你在[过去年份]的那一年[计算年龄]'

我遇到的问题是让 newAge 成为一个正数,这样我就可以将它作为一个正数传递给字符串。我已经尝试过 Math.abs() 并将 newAge 乘以 -1,但我似乎无法让它变为正数。

【问题讨论】:

  • newAge = Math.abs(age + yearDifference)返回一个正数,因此positiveNewAge = newAge * -1产生一个负数。
  • 所以如果我输入 positiveNewAge = Math.abs(newAge) 它应该是一个正数吧?
  • 没关系。我发誓我在几分钟前尝试过,但没有成功。
  • 这确实是最好的方法。它可能会做得更短一点,但它不会那么可读和可维护。我会坚持这一点。更容易调试和理解。

标签: javascript string return negative-integer


【解决方案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));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多