发表于: 2019-04-20 23:02:20
1 219
今天完成的事:
1.任务2--4
2.数组的生成+洗牌随机
明天的计划:
1.继续任务2--4
2.学习如何储存数据值—— sessionStorage
遇到的问题:
1.在进行数组获取的时候,发现循环出来的结果总是不正常,后来发现是因为这两个值全都是字符串类型的,不是Number类型的怎么进行相加?
收获:
1.学习了洗牌算法的几种实现方法
(1)用sort + Math.random() -0.5的方法,这种方法可以做到简单的随机,但缺点就是它并没有做到真正完全的随机效果,实际上会有很多重复
(2)用Fisher-Yates-shuffle方法,这个方法非常的经典,也是最推荐用的。简单说一下核心的逻辑,我们把数组的索引值分为两部分,第一部分是i,数组的总长度,利用for循环遍历 i-- 倒序的遍历出每一项。 第二部分就是 randomIndex 我们让它在数组长度的范围内随机,然后把随机出来的每一个跟 第一部分顺序出来的每一个进行对调交换。最终形成了随机的数组
评论