【发布时间】:2019-11-27 20:51:21
【问题描述】:
我正在尝试用一个额外的层来解决 Fizz Buzz 问题。
这是我目前所拥有的。所有这一切都很好,但我需要一个额外的条件。
这是 JS 单元测试
对于任何其他输入(有效或其他)返回输入的字符串表示
printFizzBuzz = function(input) {
// Your code goes here
for (var i = 1; i <= 20; i++) {
if (i % 3 === 0 && i % 5 === 0) {
console.log("FizzBuzz");
} else if (i % 3 === 0) {
console.log("FizzBuzz");
} else if (i % 5 === 0) {
console.log("Buzz");
} else {
console.log(i);
}
}
};
谢谢!
【问题讨论】:
-
最好使用
switch(i)而不是大量的else if语句 -
@DavidBradshaw 非常不同意,
switch不必要地更冗长且容易出错(对于经常忘记break的新手)。猜猜这是基于意见的 -
@CertainPerformance,这就是我们让 esLint 发现此类错误的原因。当我面试候选人时,我希望他们能够使用
switch声明 -
@DavidBradshaw 当然,知道 如何 它可以使用是好的,因为语法存在,并且知道语法是有用的,但这并不意味着它 应该使用,IMO
-
您的问题集中在:为了测试函数
printFizzBuzzJS(或者,究竟是哪个测试脚本,测试框架?)需要string作为返回?你需要类似string-builder 而不是console.log。然后循环完成后,您可以返回构建的字符串。
标签: javascript fizzbuzz