JS - 附加记录的数字序列

JS - Appending a logged sequence of numbers

我已经制作了一个从 0 到 20 的数字序列,我想更改该序列,所以一旦它出现 3 和 5 的倍数,它就会将 'FizzBuzz' 记录到终端,然后继续其余数字最多为 20。我的问题是,一旦我将数字更改为字符串,序列中的其余项就会出现 NaN。我知道我的代码的问题是我正在将数字更改为字符串,而您无法对字符串执行加法运算,这就是出现 NaN 的原因。我对此很陌生,所以任何有关如何完成此操作的想法都将不胜感激。我试过使用 .append() 但我很确定我没有正确使用它。

到目前为止我的代码;

    var increment = function(number)
    {
        for (var i = 1; i <= 20; i++)
        {
            console.log(number++)
            if ((number % 3 === 0) && (number % 5 === 0))
            {
                number = "FizzBuzz"
                console.log("FizzBuzz");
            }
            else if (number % 3 === 0)
            {
                console.log("Fizz");
            }
            else if (number % 5 === 0)
            {
                console.log("Buzz");
            }
            else
            {}
        }
    }
    increment(1)

当您找到 3 和 5 的倍数时,您将 number 设置为 "FizzBuzz",它没有 ++ 运算符。在下一次迭代中,您在 number 上调用 ++,现在是 "FizzBuzz",因此它会记录 NaN.

如果您不将 number 设置为 "FizzBuzz",它应该可以正常工作。

这样就可以了

var increment = function()
{
    for (var i = 1; i <= 20; i++)
    {
        if ((i % 3 === 0) && (i % 5 === 0))
        {
            console.log("FizzBuzz");
        }
        else if (i % 3 === 0)
        {
            console.log("Fizz");
        }
        else if (i % 5 === 0)
        {
            console.log("Buzz");
        }
        else{
            console.log(i)
        }
    }
}
increment()

无需传递 number 参数,因为您的 for 循环已设置为递增 1 (i++)。