发表于: 2017-05-15 00:51:12
1 950
天做了什么事:
1.在刷面试题,并且准备怎么吹项目。
2.准备简历,现在心里好虚,要好好利用时间,有点怂了。
明天要做什么事:
1.准备周二的大事
2.看书,读英语,写文章
遇到了什么问题:
1.暂无具体问题
收获
1.关于如何获得不重复随机数组的方法写了一篇分享:
获得不重复的随机数组。
获得不重复随机数组的方法非常多,这里就介绍一种:使用indexOf()的方法来去重,然后通过push()方法来添加数组。
push() 方法的作用:
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
indexOf()方法的定义及介绍:
看完了还是一脸懵逼,到底跟随机数组去重有什么关系??
这里有一句特别关键:
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
依靠这句注释,通过if条件判断,我们就可以做出随机数组去重的功能。
代码:
//num是一个数组,randomNum是一个随机数值。
while (num.length<3){//num.length代表数组的长度,当数组的长度不再满足小于3,跳出循环
var randomNum=Math.floor(Math.random()*9);//获得在0-9之间的随机数
if (num.indexOf(randomNum)<0){ //判断randomNum之前有没有在数组里面,如果没有,就添加进去,如果有,重新循环。
num.push(randomNum); // 将randomNum这个随机数,添加到num这个数组里面。
}
console.log(num);
}
代码思路:
1.先限定数组的长度,否则就成死循环了。
2.获得一个随机数
3.判断是否已经在数组里面,如果没有,就执行if下面的函数。
4.没有出现这个随机数,indexOf()这个方法会返回-1,这是判断条件的依据。
5.当随机数达到三个了就跳出循环。此时num数组已经去重完毕。
代码执行演示:
以下是演示的一个栗子,当数组里面已经有6了,再随机到6的时候,就会跳过push,直到随机到不重复的。

ps:indexOf()这个方法去重效率到后期偏低,仅适用于数据量比较小的时候,因为后期数据量大的话,数组中每一个都进行依次比较的话,时间方面会花很长时间。
掘金相关文章:https://juejin.im/post/59116a77ac502e006557afc2
我的学员服务器:http://119.10.57.69:880/jnshu3950/jnshu/index.html
评论