练习牛客网笔试题--前端js--30-流程控制

练习牛客网笔试题--前端js--30-流程控制

        // 题目描述

        // 实现 fizzBuzz 函数,参数 num 与返回值的关系如下:

        // 1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz

        // 2、如果 num 能被 3 整除,返回字符串 fizz

        // 3、如果 num 能被 5 整除,返回字符串 buzz

        // 4、如果参数为空或者不是 Number 类型,返回 false

        // 5、其余情况,返回参数 num

        // 输入    15

        // 输出    fizzbuzz

 

1.自己的练习

        function fizzBuzz(num) {
            if(num === '' || (typeof num) !== 'number'){
                return false;
            } else if(num % 3 === 0 && num % 5 === 0) {
                return 'fizzbuzz';
            } else if(num % 3 === 0) {
                return 'fizz';
            } else if(num % 5 === 0) {
                return 'buzz';
            } else {
                return num;
            }
        }

2.题解

        //1. isNaN的方法有一点问题,不能 字符串型数字。不过拼接字符串部分的思路值得学习
        function fizzBuzz(num) {
            if (num === null || num === '' || isNaN(num)) {
                return false;
            }
            var str = '';
            if (num % 3 === 0) {
                str += 'fizz';
            }
            if (num % 5 === 0) {
                str += 'buzz';
            }
            return str || num;
        }

        // 2. Object.prototype.toString.call()  较精确的判断方法
        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;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值