来自Fizz Buzz游戏Javascript的未定义结果

时间:2015-03-12 05:01:12

标签: javascript if-statement for-loop

我正在完成一项任务,我必须在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));

4 个答案:

答案 0 :(得分:2)

因为fizzBuzz函数没有返回任何内容。您需要从该函数返回结果。 document.write将文本写入文档。

答案 1 :(得分:1)

你没有从你的功能中返回任何东西。

ANSWER将是您在函数中返回的内容。

如果您想要返回所有值,则需要执行类似

的操作
var ans='';

...

if(whatever)ans + ='Fizz Buzz,';

....

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

答案 2 :(得分: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 ]

答案 3 :(得分:0)

<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>