实现 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运算符,返回的是字符串。
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 || typeof num != "number") return false; else return num; }