实现 fizzBuzz 函数,参数 num 与返回值的关系如下:
1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
2、如果 num 能被 3 整除,返回字符串 fizz
3、如果 num 能被 5 整除,返回字符串 buzz
4、如果参数为空或者不是 Number 类型,返回 false
5、其余情况,返回参数 num
15
fizzbuzz
高程明确定义 Number类型下两种表示: var num = 120 or var num1 = new Number(120)
这里type可取[ 'Array', 'Number', 'Object', 'String', 'Undefined', 'null' ]
function fizzBuzz(num) {
if (num === undefined || Object.prototype.toString.call(num) !== '[object Number]') {
return false;
}
if (num % 3 === 0 && num % 5 === 0) {
return 'fizzbuzz';
} else if (num % 3 === 0) {
return 'fizz';
} else if (num % 5 === 0) {
return 'buzz';
}
return num;
}
var num = new Number(120);
console.log(fizzBuzz(num), typeof num); // fizzBuzz, object
//测试判例
console.log([fizzBuzz(''), //false
fizzBuzz(), //false
fizzBuzz(0), //fizzBuzz
fizzBuzz(15), //fizzBuzz
fizzBuzz(9), //fizz
fizzBuzz(25), //buzz
fizzBuzz(29) //29
]);
function fizzBuzz(num) { if(fizzBuzz.length == 0 || typeof(num) != "number"){ return false; } if(num % 3 == 0 && num % 5 == 0){ return "fizzbuzz"; } if(num % 3 == 0){ return "fizz"; } if(num % 5 == 0){ return "buzz"; } return num; }
// 一般写法
function fizzBuzz(num) {
if (num % 3 === 0 && num % 5 === 0) {
/* 特殊地,可换为 if (num % 15 === 0) */
return 'fizzbuzz';
} else if (num % 3 === 0) {
return 'fizz';
} else if (num % 5 === 0) {
return 'buzz';
}
if (num === null || num === '' || typeof num !== 'number') {
return false;
}
return num;
}
// 改进写法 function fizzBuzz(num) { if (num === null || num === '' || typeof num !== 'number') { return false; } var result = ''; if (num % 3 === 0) { result += 'fizz'; } if (num % 5 === 0) { result += 'buzz'; } return result || num; }
function fizzBuzz(num) { if(!num || typeof num !== 'number') return false let conditionByThree = num % 3 === 0 let conditionByFifth = num % 5 === 0 if(conditionByThree && conditionByFifth) return 'fizzbuzz' if(conditionByThree) return 'fizz' if(conditionByFifth) return 'buzz' return num }
function fizzBuzz(num) { let str = ''; if(typeof num !== 'number') { return false; } else if (num === null) { return false; } else { if (num % 3 == 0) { str += 'fizz'; } if (num % 5 == 0) { str += 'buzz'; } return str == '' ? num : str; } }
function fizzBuzz(num) { if((num%3 == 0)&&(num%5 == 0)){ return "fizzbuzz"; }else if(num%3 == 0){ return "fizz"; }else if(num%5 == 0){ return "buzz"; }else if((num==null)||(num instanceof Number)){ //注意:这里不能使用instansof,应该使用typeof。 return false; }else{ return num; } }
能否整除即余数是否为0,则使用%运算符。使用if-elseif结构,只要某一条匹配,则下面的不会在进行判断。判断num是否为Number,可以用typeof运算符,返回的是字符串。