【发布时间】:2021-12-20 22:44:40
【问题描述】:
任务
第一世纪从 1 年到 100 年,包括 100 年,第二个世纪 - 从 101 年到 200 年,以此类推。
给定一年,返回它所在的世纪。但是,对于 else if 块,它返回19.64,而不是20。这条线有什么问题?
const onCenturyCrossover = function (year) {
return year % 2 === 0;
};
const century = function (year) {
if (onCenturyCrossover(year) === true) {
return year / 100;
} else if (onCenturyCrossover(year) === false) {
return Math.trunc(year / 100) + 1;
}
};
console.log(century(2000));
console.log(century(1964));
【问题讨论】:
-
是什么让可被 2 整除的年份成为“世纪交叉”?
-
具体来说:1964 可以被 2 整除,所以
onCenturyCrossover()将返回true。因此,1964 / 100 没有应用任何.trunc()将是19.64。 -
也不要像这样明确比较
true和false。您的函数只需要调用一次;如果结果不是true',那么它必须是false。if语句已经知道如何使用布尔值,因此不需要显式比较。 -
啊,是的。所有必须改变的只是从第 2 年到第 100 年我的坏。真/假位只是为了我的可读性,还是新的!感谢朋友的帮助
标签: javascript algorithm function truncate