我正在做一个简单的fizzBuzz功能。我们的目标是让5个热门话题为5,fizzBuzz为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)
我需要将每个数字放在自己的行上。
答案 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)
本练习测试你可以使用for循环,你理解基本的布尔算法,你可以写一个条件。这就是本练习的目的。
如果你真的需要它自己的所有内容,只需完全跳过数组,而不是console.log('Fizzbuzz')
。或者创建一个字符串并附加到该字符串,确保每次循环时都写一个换行符。或者,您可以编写数组并join('\n')
。
我怀疑你是不是因为没有回来而失败了。这不是fizzbuzz的精神。
坦率地说,如果你发现这一点很难,也许你就是Fizzbuzz旨在消除的人之一。苛刻,对不起,还有其他职业选择。这应该是一个微不足道的30秒工作。