实现 fizzBuzz 函数,参数 num 与返回值的关系如下:
1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
2、如果 num 能被 3 整除,返回字符串 fizz
3、如果 num 能被 5 整除,返回字符串 buzz
4、如果参数为空或者不是 Number 类型,返回 false
5、其余情况,返回参数 num
15
fizzbuzz
15
fizzbuzz
function fizzBuzz(num) { if(!(typeof num === 'number')||num == ""){ return false } let flag1 = num % 3 === 0 && num % 5 === 0 let flag2 = num % 3 ===0 let flag3 = num % 5 ===0 if(flag1){ return "fizzbuzz" }else if(flag2){ return "fizz" }else if(flag3){ return "buzz" }else{ return num } }if elseif else 流程判断
function fizzBuzz(num) { var str = "" if(typeof num === "number") {//判断num是否为数字 //是数字就按顺序判断是否整除,给str加内容 if(num%3 === 0){ str = str.concat("fizz") } if(num%5 === 0) { str = str.concat("buzz") } //判断str是否为空,为空则直接返回num,不为空返回str if(str === "") { return num } else return str } else //不是数字返回F return false }
function fizzBuzz(num) { let res = null; if (!!num === false || typeof (num) !== 'number') { return false; } if (num % 5 === 0 && num % 3 === 0) { res = 'fizzbuzz'; } else if (num % 3 === 0) { res = 'fizz'; } else if (num % 5 === 0) { res = 'buzz'; } else { res = num; } return res; }注意typeof后的值为字符串即可。
function fizzBuzz(num) { var res = num; if(num === "" || isNaN(num)){ res = false; }else if(num % 3 == 0 && num % 5 == 0){ res = "fizzbuzz"; }else if(num % 3 == 0){ res = "fizz"; }else if(num % 5 == 0){ res = "buzz"; } return res; }
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 || typeof num != 'number') { return false; } else { return num; } }
function fizzBuzz(num) { if(num !== undefined && Object.prototype.toString.call(num) === "[object Number]"){ var three = num%3 === 0; var five = num%5 === 0; if(three){ return five ? 'fizzbuzz' : 'fizz'; }else{ return five ? 'buzz' : num; } } return false; }
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; } }
function fizzBuzz(num) { if(num%3==0 && num%5==0){ return 'fizzbuzz' }else if(num%3==0 && num%5!=0){ return 'fizz' }else if(num%3!=0 && num%5==0){ return 'buzz' }else if(typeof num != "number" || typeof num == "undefined"){ return false } return num }简单的if else if 语句,最后类型我是采用了typeof进行类型的判断,注意返回的是字符串
function fizzBuzz(num) { if(!isNumber(num)||isEmpty(num)){ return false; }else if (num%15==0){ return "fizzbuzz"; }else if(num%3==0) { return "fizz"; }else if(num%5==0){ return "buzz"; }else{ return num; } } function isEmpty(obj){ return typeof obj == "undefined" || obj == null || obj === ""; } function isNumber(obj){ return obj===+obj; }
function fizzBuzz(num) { if(typeof num != 'number') return false else if(!(num%3) && !(num%5)) return 'fizzbuzz' else if(!(num%3)) return 'fizz' else if(!(num%5)) return 'buzz' else return num }
//用希留的方法在牛课上过了,但是在本机测试并没过, //当数据是null的时候输出不对,然后我加了条件后过了,但是不知道为什么,求解答。 var num1 = 3, num2 = 5, num3 = 15, num4 = null, num5 = 'str', num6 = 16; function fizzBuzz(num) { if(num % 3 == 0 && num % 5 == 0 && num != null) return "fizzbuzz"; else if(num % 3 == 0 && num != null) return "fizz"; else if(num % 5 == 0 && num != null) return "buzz"; else if(num == null || typeof num != "number") return false; else return num; } console.log("3" + fizzBuzz(num1)); console.log("5" + fizzBuzz(num2)); console.log("15" + fizzBuzz(num3)); console.log("null" + fizzBuzz(num4)); console.log("str" + fizzBuzz(num5)); console.log("16" + fizzBuzz(num6));
能否整除即余数是否为0,则使用%运算符。使用if-elseif结构,只要某一条匹配,则下面的不会在进行判断。判断num是否为Number,可以用typeof运算符,返回的是字符串。