在fizzbuzz中无法摆脱逗号

时间:2015-03-25 19:06:42

标签: javascript

我正在做一个简单的fizzBu​​zz功能。我们的目标是让5个热门话题为5,fizzBu​​zz为15个。增加的技巧是让每个人都有自己的线路。

function fizzbuzz(n) {

    var array = [];
    for(var i =1; i<=n; i++) {
      if(i % 15 ===0){
            array.push('FizzBuzz');
        }
      else if (i % 3 === 0) {
            array.push('Fizz');
        }
      else if(i % 5 === 0) {
            array.push('Buzz');
        }
      else {
            array.push(i);
        }
    }
        return array + '\n'  ;
}
 console.log(fizzbuzz(15));

代码有效。问题是我得到了

console.log(1,2,fizz,4,buzz,5,etc)

我需要将每个数字放在自己的行上。

4 个答案:

答案 0 :(得分:3)

明确.join()你的数组:

console.log(fizzbuzz(15).join("\n"));

将返回的数组传递给console.log()将隐式地将数组转换为字符串。完成的方式实际上与调用.join(",")相同,因此您可以使用逗号。明确地自己做.join()可以让你提供你想要的任何分隔符。

编辑 - 一位聪明人在评论中指出,您需要在+ "\n"声明中删除return。那就是触发默认.join()。或者,您可以在那里进行.join("\n")

答案 1 :(得分:2)

使用join:

[1,2,'fizz',4,'buzz',5].join('\n');

答案 2 :(得分:2)

你可以简单地“加入”数组:

function fizzbuzz(n) {

    var array = [];
    for(var i =1; i<=n; i++) {
      if(i % 15 ===0){
            array.push('FizzBuzz');
        }
      else if (i % 3 === 0) {
            array.push('Fizz');
        }
      else if(i % 5 === 0) {
            array.push('Buzz');
        }
      else {
            array.push(i);
        }
    }
        return array.join('\n');
}
 console.log(fizzbuzz(15));

答案 3 :(得分:0)

fizzbuzz的目的是展示基本的编码技巧

本练习测试你可以使用for循环,你理解基本的布尔算法,你可以写一个条件。这就是本练习的目的。

如果你真的需要它自己的所有内容,只需完全跳过数组,而不是console.log('Fizzbuzz')。或者创建一个字符串并附加到该字符串,确保每次循环时都写一个换行符。或者,您可以编写数组并join('\n')

我怀疑你是不是因为没有回来而失败了。这不是fizzbuzz的精神。

坦率地说,如果你发现这一点很难,也许你就是Fizzbuzz旨在消除的人之一。苛刻,对不起,还有其他职业选择。这应该是一个微不足道的30秒工作。