DEV Community

Discussion on: FizzBuzz JavaScript

Collapse
 
akhilpokle profile image
Akhil • Edited

I think you made a small typo in for loop, for( i = 1;i<=n ; i++).
I was asked this same question and I gave the exact answer. The answer has one disadvantage to it, if the interviewer asks to modify question such that,

if the current number is divisible by 7 print foo
if its divisible by 11 print bazz
if its divisible by 7 and 11 print foobazz
if its divisible by 3 and 7 print fizzfoo
if its divisible by 3 and 5 and 7 print fizzbuzzfoo

the above approach doesn't work well in these conditions since now we have to maintain multiple conditions, instead do this.

let str = "";
for( i = 1;i<=n ; i++){
    if(n%3 == 0) str += "fizz";
    if(n%5 == 0) str += "buzz";
    if(n%7 == 0) str += "foo";
    if(n%11 == 0) str += "bazz";
    else str += n;
}
Collapse
 
tadea profile image
Tadea Simunovic

Hey Akhil,
Thanks for pointing out. I was approaching to this specific challenge with 3 and 5 but great to know this! Thanks for sharing!

Collapse
 
jpantunes profile image
JP Antunes

Mind you that with that approach every n is evaluated 4 times before a result sting is printed , so it's less efficient than Tadea's solution.

Collapse
 
akhilpokle profile image
Akhil • Edited

Nope, it would be the same since here I have modified the question for 4 conditions, ie 3,5,7,11. If we follow the original question ie checking for 3 & 5, then code will be :

let str = "";
for( i = 1;i<=n ; i++){
    if(n%3 == 0) str += "fizz";
    if(n%5 == 0) str += "buzz";
    else str += n;
}
return str;
}
Thread Thread
 
jpantunes profile image
JP Antunes • Edited

Interesting. What do you think happens after each if statement?
Or in another way, what is the difference between two or more if's and a chain of if, else if, else?

edit: a picture of my cat doing a code review :-)
visual

Thread Thread
 
akhilpokle profile image
Akhil

oh yeah, that else part is a really bad bug from my side
it should be

if(str ="") str += n;

what this video : youtube.com/watch?v=QPZ0pIK_wsc