一道 JavaScript 面试题

作者: 多小啦 | 来源:发表于2017-04-15 10:58 被阅读137次

    今天看到一道JavaScript 面试题, 闲着没事来做一下.

    题目: 编写一个JS 函数fn, 该函数有一个参数 n(数字类型),其返回值是一个数组,
    该数组是 n 个随机 且不重复的整数, 且整数取值范围是[2,32].

    最初的思路就是下面这样:

    function fn(n) {
         var ret = [],
             randomNum;
         if (n <= 0 || typeof n !== 'number' || n % 1 !== 0 || n == 'undefined' || n > 31) {
             return [];
         }
         while (randomNum = 2 + parseInt(Math.random() * 30)) {
             if (ret.indexOf(randomNum) == -1) {
                 ret.push(randomNum);
                 if (ret.length == n) {
                     return ret;
                 }
             }
         }
    }
    
    

    第二版:


    fix.jpg

    想到bug 的地方再优化吧~

    PS: 重装了一下 sublime, 更新了主题, sidebar 和 ico, 敲开心(o)/~

    screen.jpg

    相关文章

      网友评论

        本文标题:一道 JavaScript 面试题

        本文链接:https://www.haomeiwen.com/subject/jdsnattx.html