2017-06-23 32 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參數,因爲你for循環已經設置1(i++)遞增。

+0

非常感謝! –

+0

正如另一個答案中指出的那樣,您遇到麻煩的原因是因爲您將'number'設置爲一個字符串,實際上並沒有如果這個答案適用於你,請接受它(點擊小複選標記)。 – skwidbreth

2

當你找到的3和5的倍數,要設置number"FizzBuzz",它不具有++運營商。在下一次迭代中,您致電++number,現在是"FizzBuzz",因此它記錄了NaN

如果你沒有設置number"FizzBuzz"它應該工作正常。