关于 sliders.filter(() => Math.random() >= 0.5)
let sliders = res.data.slider;
const slider = [sliders[Math.floor(Math.random() * sliders.length)]];
sliders = sliders.filter( () => Math.random() >= 0.5 );
请问老师:
Math.random() 是 乱数 0 ~ 1 随机
filter() 是 通過檢查來返回()中的元素,構成新的數組,本章節是判断乱数是否大於0.5
而这句话的意思是 :sliders.filter(() => Math.random() >= 0.5)
个人白话文理解:幻灯片总数组的,返回(随机数将大于等于0.5的取出)
问题:可是 Math.random() >= 0.5 所取出的值都是 小于 1 的值,他要怎么取得 sliders 中的数组?
请老师解惑及检查思路,谢谢您。
正在回答
你好同学,同学说的sliders的数组是 0 ~ 9说的是随机数吗?不是的哦,数组中保存的是图片,也就是我们请求过来的数据,如下:
另外,这个过滤条件中并没有相乘啊 ,只是判断随机生成的数字是否大于0.5 。同学是不是看错了,导致理解的有误区。
老师在第一次回复中有讲解这个代码,建议同学重新梳理一下哦。
祝学习愉快,望采纳。
你好同学,参考如下理解:
1.Math.random() 是0 ~ 1 随机数。
2.同学要注意看一下代码,随机数Math.random() 外层包裹一个Math.floor()向下取整。当随机数乘以数组的长度之后,都会向下取整的哦。
3.filter会遍历数组中所有元素,如果判断条件是true,则把当前遍历的元素返回给新数组。如果返回false,则不会加到新数组了。随机数是0~1,随机数返回大于0.5的概率就是50%(即如下判断条件有50%的概率为true)。老师设置这个判断条件,是让每一个元素有50%的概率加入到新数组中。
祝学习愉快,望采纳。
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星