Fizz Buzz 游戏的未定义结果 Javascript

Undefined result from Fizz Buzz game Javascript

我有一项任务,我必须在 Javascript 中进行 FizzBu​​zz 游戏。问题是当我 运行 函数时我得到 'Answer = undefined' 。我必须用逗号分隔值打印它,但我想我可以自己弄清楚;提前致谢。问候,托马斯。

function fizzBuzz(start, stop) {

    for(var i = start; i <= stop; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            document.write("Fizz Buzz");
        }else if(i % 3 == 0) {
            document.write("Fizz");
        }else if(i % 5 == 0) {
            document.write("Buzz");
        }else {
            document.write(i);
        }
    }
}

ANSWER = (fizzBuzz(4, 22));

因为 fizzBuzz 函数没有 returning 任何东西。您需要 return 该函数的结果。 document.write 将文本写入文档。

你没有return从你的函数中获取任何东西。

A​​NSWER 将是您在函数中 'return' 的内容。

如果你想return你需要做的事情的所有值

var ans='';

...

如果(随便)ans+= 'Fizz Buzz,';

....

return ans.substring(0,ans.length-1);

对您的代码进行一些修改...

function fizzBuzz(start, stop) {
    var i;
    var results = [];
    for (i = start; i <= stop; i++) {
        if (i % 15 == 0) {
            results.push('Fizz Buzz');
        } else if (i % 3 == 0) {
            results.push('Fizz');
        } else if (i % 5 == 0) {
            results.push('Buzz');
        } else {
            // cast to string just so all the results in the array are string
            results.push(i + '');
        }
    }
    return results;
}

ANSWER = fizzBuzz(4, 22);  // output: [ '4', 'Fizz', 'Buzz', '7', '8', ...etc ]
<html>
<script>
function fizzBuzz(start, stop) {
  var str = 'ANSWER = ';
    for(var i = start; i <= stop; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            str += "Fizz Buzz";
        }else if(i % 3 == 0) {
            str += "Fizz";
        }else if(i % 5 == 0) {
            str += "Buzz";
        }else {
            str += i;
        }
        if (i<stop)
            str += ", ";

    }
    document.getElementById('writeto').innerHTML += str;
}
fizzBuzz(4, 22);
</script>
<body>
  <a id='writeto'></a>
</body>
</html>