今天看到一道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
网友评论