JS不解

@Ta 2018-01-24 4720点击
随机背景色
var y=new Array;
 y=["#CCCCCC","#33FFFF","#CCE8CF"]
y.sort(function(){return Math.random()-0.5})
document.getElementById('post').style.backgroundColor=y[0]



减去1.5的意义何在?
是个什么意思

sort既然已经打乱了数组为何减去1.5?能有什么记得作用?


根据绿林的活跃度 我知道我要睡一觉起来等答案
你们也有小尾巴吗,我也有啊!
回复列表(6|隐藏机器人聊天)
  • @Ta / 2018-01-24 / /
    我回复的效率很高,就是无法解决你的问题
  • @Ta / 2018-01-24 / /
    @雨落泪尽,😂😂
    你们也有小尾巴吗,我也有啊!
  • @Ta / 2018-01-24 / /
    你要是不减去0.5  NIIT永远获取不到第二个颜色  还有sort排序不稳定
  • @Ta / 2018-01-24 / /
    @庸人,我回答的可能不对,但是我觉得意思已经到位了:只是为了生成一个随机数,解决一个名叫浏览器缓存机制的问题,举个例子说,验证码图片点击事件,当前URL与即将更换的URL如果相同,即使触发了单击事件也没有给你更换新的验证码图片。
  • @Ta / 2018-01-24 / /
    理解Array.sort方法与Math.random方法你就能知道为什么了:

    Array.sort(sortby) 该方法用于数组排序,sortby规定排序顺序,为函数类型,拥有两个参数,(a值与b值,用于自定义排序),
    该函数要比较两个值(a与b),然后返回一个用于说明这两个值的相对顺序的数字。其返回值如下:
    若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
    若 a 等于 b,则返回 0。
    若 a 大于 b,则返回一个大于 0 的值。

    Math.random()输出的是0~1的随机数(不会出现负数),减去0.5是为了输出-0.5~0.5之间的随机数,这样才可以做到随机打乱数组排序,打乱之后再取数组的第0个color作为背景颜色使用
  • @Ta / 2018-01-24 / /
    @猫咪情缘,感谢!@TabKey9@游魂,感谢,有点懂了
    你们也有小尾巴吗,我也有啊!
添加新回复
回复需要登录