Javascript 我的嘶嘶声

Javascript 我的嘶嘶声,javascript,fizzbuzz,Javascript,Fizzbuzz,这是我的嘶嘶声尝试 (i=1;i这是正确的,但是冗长 让我们把任务分解一下。你有两个因素:是3的倍数,还是5的倍数?当然,两者都可以,或者两者都可以,总共有四种情况。比如: | Not x5 | x5 -------+--------+--------- Not x3 | number | Buzz x3 | Fizz | FizzBuzz 您可以在代码中非常简单地表示这一点: function getFizzBuzz(n) { if(n%5) {

这是我的嘶嘶声尝试


(i=1;i这是正确的,但是冗长

让我们把任务分解一下。你有两个因素:是3的倍数,还是5的倍数?当然,两者都可以,或者两者都可以,总共有四种情况。比如:

       | Not x5 |    x5
-------+--------+---------
Not x3 | number |   Buzz
  x3   |  Fizz  | FizzBuzz
您可以在代码中非常简单地表示这一点:

function getFizzBuzz(n) {
    if(n%5) { // not x5
        if(n%3) // not x3 either
            return n;
        else // x3
            return 'Fizz';
    }
    else {
        if(n%3)
            return 'Buzz';
        else
            return 'FizzBuzz';
    }
}
然后只做一个循环:

for(i=1; i<=20; i++) console.log(getFizzBuzz(i));

完成这项任务的方法有很多。不同之处在于其他程序员以后阅读您的代码有多容易。

我认为可以有多种解决方案,关键是要让它更具可读性,正如Niet指出的那样

这是我的版本,有一个

代码:


for(var a=1;a我认为您的解决方案很好。它的可读性也很好,这是编程中的一个大问题

我唯一的建议是从3和5的倍数开始检查(这样您就可以删除非多重检查),使用strick equal比较运算符(
==
),并稍微更改代码样式-同样,可读性是巨大的。(我建议的一些风格改变可能不被推荐,这取决于你最终为谁工作或与谁一起工作,所以对此持保留态度。)

以下是代码形式的建议:

for (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)
};

for(i=1;i有很多方法可以做到这一点,但重要的是遵循编码指南,使其更简单易读

class-fizzbuzz{
建造师(嘶嘶声、嗡嗡声、长度){
this.fizz=fizz;
this.buzz=buzz;
这个长度=长度;
}
输出(){
for(设i=0;i新的fizzbuzz(3,5100).output();
你会说这太迂回了吗?我有点喜欢它的开头,但可能有更好的方法

编辑:虽然我的其他解决方案比其他XD解决方案更加冗长,但看起来还是有点像

//declare the three arrays to store variables
var threeArray = [];
var fiveArray = [];
var threeFiveArray = [];

//prep your fizzes 
for (i = 3; i < 100; i+=3){
    threeArray.push(i); 
}   

//prep your buzzes 
for (i = 5; i < 100; i+=5){
    fiveArray.push(i);
}

//iterate through 0-99 to see if any of the numbers are in fizz, buzz, or both.
for (i = 0; i < 100; i++){
  if(threeArray.includes(i) && fiveArray.includes(i)){
    threeFiveArray.push(i + ' fizzbuzz');
  } else if(threeArray.includes(i)){
    threeFiveArray.push(i + ' fizz');
  } else if(fiveArray.includes(i)){
    threeFiveArray.push(i + ' buzz');
  } 
}

//return your results
console.log(threeFiveArray);
//声明存储变量的三个数组
var threeArray=[];
var fiveArray=[];
var Three FiveArray=[];
//准备好你的汽水
对于(i=3;i<100;i+=3){
推(i);
}   
//准备好你的蜂鸣器
对于(i=5;i<100;i+=5){
五轮推(一);
}
//迭代0-99,查看是否有任何数字是fizz、buzz或两者都有。
对于(i=0;i<100;i++){
if(三个数组包括(i)和五个数组包括(i)){
三个五排。推(i+‘嘶嘶嗡嗡’);
}else if(包括(i)){
三个五排。推(i+‘嘶嘶’);
}其他如果(五列包括(i)){
三个五排。推(i+嗡嗡声);
} 
}
//返回您的结果
控制台日志(三个五列);

条件
else if(i%5==0&&i%3!==0)
是冗余的,
else if(i%5==0)
是足够的,如果你的代码正在工作,那么它就脱离主题了。我认为它对于codereview来说也太模糊了。如果问题要求对工作代码给出不具体的注释,那么它可能是脱离主题的,更适合于我个人,我不觉得特别可读……我认为注释的使用表明这不是一个简单的解决方案。如果它简单易懂,就没有必要了。它是极简的、聪明的,但没有那么简单。使用一些
&&
,只使用四个If/else语句而不是嵌套的If/else语句可能有助于提高清晰度。
for (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)
};
//declare the three arrays to store variables
var threeArray = [];
var fiveArray = [];
var threeFiveArray = [];

//prep your fizzes 
for (i = 3; i < 100; i+=3){
    threeArray.push(i); 
}   

//prep your buzzes 
for (i = 5; i < 100; i+=5){
    fiveArray.push(i);
}

//iterate through 0-99 to see if any of the numbers are in fizz, buzz, or both.
for (i = 0; i < 100; i++){
  if(threeArray.includes(i) && fiveArray.includes(i)){
    threeFiveArray.push(i + ' fizzbuzz');
  } else if(threeArray.includes(i)){
    threeFiveArray.push(i + ' fizz');
  } else if(fiveArray.includes(i)){
    threeFiveArray.push(i + ' buzz');
  } 
}

//return your results
console.log(threeFiveArray);