口若悬河的Javascript嘶嘶作响

口若悬河的Javascript嘶嘶作响,javascript,Javascript,我目前正在使用有说服力的javascript 我试着去做fizzbuzz任务,当我不得不打印可被3和5整除的数字时,我很挣扎 任务和我的解决方案如下 干杯 任务: for(i=1; i<101; i++) { if(i % 3 === 0) { console.log("Fizz"); } else if(i % 5 === 0) { console.log("Buzz"); } else if (i % 3 === 0 &&

我目前正在使用有说服力的javascript

我试着去做fizzbuzz任务,当我不得不打印可被3和5整除的数字时,我很挣扎

任务和我的解决方案如下

干杯

任务:

for(i=1; i<101; i++) {
    if(i % 3 === 0) {
        console.log("Fizz");
    } else if(i % 5 === 0) {
        console.log("Buzz");
    } else if (i % 3 === 0 && i % 5 === 0){
        console.log("FizzBuzz");
    } else {
        console.log("What should this be?");
    }
}
编写一个程序,使用console.log打印1中的所有数字 到100,有两个例外。对于可被3整除的数字,请打印“Fizz” 对于可被5整除(而不是3整除)的数字,请打印 而是“嗡嗡”声。 当你有工作,修改你的程序打印“FizzBuzz”, 对于同时可被3和5整除的数字(仍打印“Fizz”或 “嗡嗡声”表示只能被其中一个整除的数字)。 (这实际上是一个必须回答的面试问题

我的解决方案:

for(i=1; i<101; i++) {
    if(i % 3 === 0) {
        console.log("Fizz");
    } else if(i % 5 === 0) {
        console.log("Buzz");
    } else if (i % 3 === 0 && i % 5 === 0){
        console.log("FizzBuzz");
    } else {
        console.log("What should this be?");
    }
}

for(i=1;i您的条件顺序错误:

for(i=1; i<101; 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("What should this be?");
    }
}

for(i=1;i如果(i%3==0&&i%5==0)
您的代码永远不会到达
else中的块,因为
if(i%3==0)
else if(i%5==0)
首先是真的

这里可能有一个更简单的方法来思考这个问题:

for (var i = 1; i <= 100; i++) {
    var message = "";
    if (i % 3 === 0) {
        message = "Fizz"
    } 
    if (i % 5 === 0) {
        message += "Buzz";
    } 
    console.log(message || i);
}
for(var i=1;i使用以下代码

for(i=1; i<101; i++) {
    if (i % 3 === 0 && i % 5 === 0){
        console.log("FizzBuzz");
    };
    if(i % 3 === 0) {
        console.log("Fizz");
    } else if(i % 5 === 0) {
        console.log("Buzz");
    } else {
    console.log(i);
    }
}
(i=1;i (i=1;i<101;i++)的
{
var结果=”;
如果(i%3==0){result+=“Fizz”;}
如果(i%5==0){result+=“Buzz”;}
console.log(结果| | i);
}
注意:请不要在生产代码中执行此操作

您甚至可以使用ES6单行程序(为了“清晰起见”在多行程序中断开)

console.log(
[…数组(100).keys()
.map(i=>(i%3==0&&i%5==0)
“嘶嘶作响”
:(i%3==0)
“嘶嘶声”
:(i%5==0)
“嗡嗡声”
:i)
.join(“\n”)
);
函数PrintFizzBuzz(){
对于(i=1;i这是我的答案:


for(设i=1;i附加到输出字符串的FizzBuzz解决方案很有说服力,但有点不灵活(例如,如果问题更改为需要不同的输出)

此解决方案避免附加,并使用嵌套的速记条件以简化:

for(let i=1; i <= 100; i++){
  let str = 
    i%3 === 0 && i%5 === 0 ? "FizzBuzz" : 
      i%3 === 0 ? "Fizz" :      
        i%5 === 0 ? "Buzz" : 
          i;
  console.log(str);
}
for(设i=1;i
var nums=[];
var指数=0;
var x=0;

而(nums.length简洁、实用且快速。我不确定它是否比这更雄辩

const oneToOneHundred=Array.from({length:100},(u,i)=>i+1);
常数fizzBuzz=(n)=>{
如果(n%15==0)返回'FizzBuzz';
如果(n%3==0)返回'Fizz';
如果(n%5==0)返回“嗡嗡声”;
返回n;
};

console.log(oneToOneHundred.map((i)=>fizzBuzz(i)).join('\n'));
for(让i=1;iI不能正常工作,对于可被3和5整除的数字,它只打印
fizzBuzz\nFizz
(对于只能被其中一个整除的数字,仍然打印“Fizz”或“Buzz”)OP想让Fizz打印这就是为什么它要打印它。我不知道为什么在书中,这里这个答案是首选的(i=1;i可能重复我喜欢这种ES6方式,而不是使用for-statement。只有在您确实不喜欢下一位开发人员阅读您的代码时才这样做…:S@grayedfox是的,我从来不会在生产代码中推荐这个!
for (let i=1;i<=100; i++) {
    if ((i%5 === 0) && (i%3 === 0)) {
        console.log("FizzBuzz") }
    else if (i%3 === 0) {
        console.log("Fizz")}
    else if (i%5 === 0) {
        console.log("Buzz")}
    else { console.log(i) }
}