Fizzbuzz问题的该种JS实现为何能自动匹配被15整除的场景?
问题解答
这段代码不需要额外判断15的逻辑、以及能输出Fizzbuzz的效果,和余数乘积完全没有关系,核心是字符串追加的逻辑:
- 每次循环开始时
output都会被初始化为空字符串 - 如果当前数字可以被3整除,就会给
output追加字符串Fizz - 如果当前数字可以被5整除,就会给
output追加字符串buzz
如果数字同时被3和5整除,两个if判断都会命中,两个字符串会按顺序拼接起来,自然就得到了Fizzbuzz,完全不需要单独判断是否被15整除的分支。
举个实际运行的例子,比如数字15的执行流程:
- 第一个
if判断15 % 3 == 0成立,output的值变为"Fizz" - 第二个
if判断15 % 5 == 0成立,output通过+=操作追加"buzz",值变为"Fizzbuzz" - 最后执行
console.log(output || number)时,output是非空字符串为真值,直接输出Fizzbuzz
你提到的+=在这里就是普通的字符串拼接赋值操作,不存在乘积相关的运算逻辑。
内容的提问来源于stack exchange,提问作者DanteArceneaux
相关产品推荐
相关产品推荐

