前端资源库让前端飞Web前端之路

一道 JavaScript 面试题

2017-04-15  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读