2017-06-23 7 views
0

私は0から20の数字のシーケンスを作りました。シーケンスを3と5の倍数になるように変更したいので、 'FizzBu​​zz'残りの数字を20まで続けます。私の問題は、シーケンスの残りの部分がNaNで始まる文字列に番号を変更した後です。私のコードの問題は、数値を文字列に変更していて、NaNが現れる文字列に追加を実行できないということです。私はこれでかなり新しいので、どのようにこれを行うにはどのような考えが大いに感謝されるでしょう。私は.append()を使ってみましたが、間違って使用しているとはかなり確信しています。JS - ログに記録された一連の数字を追加する

これまでのコードです。

var increment = function(number) 
 
    { 
 
     for (var i = 1; i <= 20; i++) 
 
     { 
 
      console.log(number++) 
 
      if ((number % 3 === 0) && (number % 5 === 0)) 
 
      { 
 
       number = "FizzBuzz" 
 
       console.log("FizzBuzz"); 
 
      } 
 
      else if (number % 3 === 0) 
 
      { 
 
       console.log("Fizz"); 
 
      } 
 
      else if (number % 5 === 0) 
 
      { 
 
       console.log("Buzz"); 
 
      } 
 
      else 
 
      {} 
 
     } 
 
    } 
 
    increment(1)

+0

正確に何をしますか?何かを返そうと思いますか?または何かを表示する? –

+0

文字列と数字(つまり「Fizz」と3)、または条件を満たす文字列(Fizz、次に4)をログに記録しますか? – skwidbreth

+0

これはコーディングチャレンジ/チュートリアルですどこかで複数の "fizzbuzz"という質問が出てきました... –

答えて

0

これは、それを

var increment = function() 
{ 
    for (var 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) 
     } 
    } 
} 
increment() 

numberパラメータを渡す必要はありませんを行うだろう。

+0

ありがとうございました! –

+0

もう一つの答えに書かれているように、あなたが問題を抱えていた理由は 'number'を文字列として設定していたからですこの答えがあなたのために働くなら、それを受け入れてください(小さなチェックマークをクリックしてください)。 – skwidbreth

2

あなたは3と5の倍数を見つけた場合、あなたは++演算子を持っていない"FizzBuzz"numberを、設定されています。次の反復では、number++に電話します。これは現在"FizzBuzz"です。したがって、NaNを記録します。

number"FizzBuzz"に設定しないと正常に動作するはずです。あなたのforループがすでに1(i++)によってインクリメントするように設定されているので、

関連する問題