发表于: 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 我们让它在数组长度的范围内随机,然后把随机出来的每一个跟 第一部分顺序出来的每一个进行对调交换。最终形成了随机的数组






返回列表 返回列表
评论

    分享到