这些是问题的标准;
我的回答是;
function getUserAge (user) {
const year = new Date().getFullYear()
return year - user.yearOfBirth
}
我不确定为什么这不能恢复用户的年龄。有人有什么建议吗?
我的答案已与此测试
describe("getUserAge", () => {
it("returns the age of the passed user based on its yearOfBirth property", () => {
const currentYear = new Date().getFullYear();
const user = {
yearOfBirth: 1989
};
expect(getUserAge(user)).to.equal(currentYear - 1989);
});
});
答案 0 :(得分:1)
您需要考虑用户今年是否生日。对于6月出生的人,您当前的实现在1月和12月返回相同的值,但是,当然,12月的值应比1月的值高1。
如果您只需要工作yearOfBirth
,就无法准确返回他们的年龄。您还需要月份和日期。 (取决于您想要的学究程度,还取决于小时,分钟和秒;但是大多数人并不是那么学究。)
答案 1 :(得分:0)
您可以使用出生日期的时间戳记与现在之间的时差。
var date_birth= new Date("2010/11/3");
var timestamp_birth= date_birth.getTime();
var now= Date.now();
var diffTimestamp= now - timestamp_birth;
// ms to secend / second to minute / minute to hour / hour to days of year
console.log( diffTimestamp/1000/60/60/24/365 );
*如您所见,仅知道年份还不够