お題
FizzBuzz
・1からn(引数)までの数字を含む配列を返す
・3の倍数の場合、数字の代わりに"Fizz"を返す
・5の倍数の場合、数字の代わりに"Buzz"を返す
・3と5の倍数の場合、数字の代わりに"FizzBuzz"を返す
・n>0とする
function fizzbuzz(n){
//write your code.
}
出力結果 例
1~30
1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14, "FizzBuzz", 16, 17, "Fizz", 19, "Buzz", "Fizz", 22, 23, "Fizz", "Buzz", 26, "Fizz", 28, 29, "FizzBuzz"
つかったもの
while文
if文
push()
考え方
・while文でnまで処理を繰り返す
・%
を使って3と5で割り切れるか判定する
・割り切れた数字は変数にいれる
・if文で用意した配列にFizz
Buzz
数字を入れる条件を設定する。
・配列を返しておわり
function fizzbuzz(n)
{
var i = 1, arr = [];
while(i <= n) {
var fizz = (i % 3 === 0);
var buzz = (i % 5 === 0);
if(fizz || buzz) {
arr.push((fizz?"Fizz":"") + (buzz?"Buzz":""));
}
else {
arr.push(i);
}
i++;
}
return arr;
}
ES6
const fizzbuzz = () => {
const fizz = 'fizz';
const buzz = 'buzz';
for (let i = 1; i < 100; i++) {
if(i % 3 === 0 && i % 5 === 0){
console.log(fizz + buzz);
}else if(i % 5 === 0){
console.log(fizz);
}else if(i % 3 === 0){
console.log(buzz);
}else{
console.log(i);
}
}
}
fizzbuzz();
その他のコード
function fizzbuzz(n){
return Array.apply(null, new Array(n)).map(function(e, i){
return (++i % 3 ? '' : 'Fizz' ) + (i % 5 ? '' : 'Buzz') || i;
});
}
fizzbuzz(12);//[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz"]