在不断的解决小问题的过程中提高自己(1)-返回整数数组的面试题
2017-03-30 09:23
330 查看
在某家公司面试的时候,记得笔试上有这么一道题:
题目:编写一个js函数fn,该函数有一个参数n(数字类型),其返回值是一个数组,该数组内是n个随机且不重复的整数,且整数取值范围是[2,32]。
在当时我并没有做出来,由于试卷前面的题目并不难,想来这道题也不难。于是在某个夜晚翻来覆去睡不着的时候就钻研了一下。下面就是代码:
function test(n) {
for (i = 0; i < n; i++)
var arr = [];
var a = Math.random();
var b = Math.floor(a * 30 + 2);
if (arr.indexOf(b) == -1) {
arr.push(b);
}
return arr;
alert(arr[2]);
}
test(5);
看来我想的没错,确实非常简单。主要是对于如何在一个区间内取值不熟悉。其中有这么几个地方需要注意一下:
(1)Math.random()方法用来取随机数,范围为0-1;
(2)Math.floor()方法用来取整,向左取整。意思就是取比给定数小或者相等的证书;
(3)arr.indexOf()方法用来判断数组中是否拥有某个值,返回值为-1即为不包含,如果包含返回其第一次出现的索引位置,妙用无穷
题目:编写一个js函数fn,该函数有一个参数n(数字类型),其返回值是一个数组,该数组内是n个随机且不重复的整数,且整数取值范围是[2,32]。
在当时我并没有做出来,由于试卷前面的题目并不难,想来这道题也不难。于是在某个夜晚翻来覆去睡不着的时候就钻研了一下。下面就是代码:
function test(n) {
for (i = 0; i < n; i++)
var arr = [];
var a = Math.random();
var b = Math.floor(a * 30 + 2);
if (arr.indexOf(b) == -1) {
arr.push(b);
}
return arr;
alert(arr[2]);
}
test(5);
看来我想的没错,确实非常简单。主要是对于如何在一个区间内取值不熟悉。其中有这么几个地方需要注意一下:
(1)Math.random()方法用来取随机数,范围为0-1;
(2)Math.floor()方法用来取整,向左取整。意思就是取比给定数小或者相等的证书;
(3)arr.indexOf()方法用来判断数组中是否拥有某个值,返回值为-1即为不包含,如果包含返回其第一次出现的索引位置,妙用无穷
相关文章推荐
- 自己开发过程中遇到的问题及解决办法
- 自己在CODING过程中遇到的问题以及解决(C/VC)
- JS学习笔记(5)--一道返回整数数组的面试题(经验之谈)
- Java面试题 - 使用二分法计算任意整数在任意整数数组中的下标,不存在则返回-1
- ubuntu11.0.4下编译Android2.3源码过程遇到问题解决【不断更新】
- 从今天开始,以后尽量写点自己学习过程中的问题与解决方法
- 自己学习Struts2过程中遇到的问题及解决办法(第一天)
- Android中onTouchEvent的返回return super.onTouchEvent(ev);数组越界问题解决方法.。。
- asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
- 使用qsort对二维字符数组排序疑难问题调试及解决过程
- 人生是一个不断解决问题的过程
- 熬了个通宵,终于把在ASP里调用存储过程不返回结果集的问题解决了。
- 记录学习过程中的疑问和解决方案,不断提高自己
- asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
- SQL server 存储过程中解决整数参数的传递问题
- 自己不断尝试制作cdlinuxU盘启动的过程,绝对好用!!解决网上大多数方法不好使!!
- 用指针变量作函数形参接收数组地址,解决10个整数按由小到大顺序排序问题
- mysql开发存储过程中,select结果集再动态的条件下select count(*)统计返回都为0问题解决
- [Django]我的第一个网页,报错啦~(自己实现过程中遇到问题以及解决办法)
- 关于自己写的aar包发布到maven过程中的一些问题解决