Javascript Math.random()>=0.5和Math.random()-0.5之间有什么区别
我想生成一个长度为n的数组,数组的元素是2到32之间的随机整数。我使用follow函数,但我发现17始终是返回数组的第一个元素。此外,当我将sort函数改为sort=>Math.random-0.5时,它工作得很好 所以我很困惑,Math.random>=0.5和Math.random-0.5之间有什么区别?这种差异如何影响排序功能 常数fn=n=>{ 设arr=[]; 对于设i=2;i<33;i++{ 普希阿罗; } 返回arr.sort=>Math.random>=0.5.0,n } 对于js sort,param是compare函数,需要返回3个值:负、零、小于、等于和大于的正值 如果使用>=,它只返回布尔值。对于js排序,参数是比较函数,需要返回3个值:负、零、小于正、等于正和大于正 如果您使用>=,它只返回布尔值。您没有出于预期目的使用排序,因此结果是不可预测的、怪异的,并且在不同的浏览器实现中可能会有所不同。如果要洗牌数组 传递到Array.sort的函数应接受两个参数x和y,如果xJavascript Math.random()>=0.5和Math.random()-0.5之间有什么区别,javascript,Javascript,我想生成一个长度为n的数组,数组的元素是2到32之间的随机整数。我使用follow函数,但我发现17始终是返回数组的第一个元素。此外,当我将sort函数改为sort=>Math.random-0.5时,它工作得很好 所以我很困惑,Math.random>=0.5和Math.random-0.5之间有什么区别?这种差异如何影响排序功能 常数fn=n=>{ 设arr=[]; 对于设i=2;iMath.random>=0.5.0,n } 对于js sort,param是compare函数,需要返回3
资料来源:众所周知,微软差点被起诉,因为他们正是这样做的:TIL。这是一篇非常简洁的文章,它应该向OP演示如何不使用该功能!谢谢你的链接!为什么每次调用函数时都将17作为第二个参数传入?这取决于浏览器如何实现排序。我可以看到它被选为快速排序中的第一个轴。或者因为它在数组的中间,所以它可能已经结束了,因为合并中的合并步骤可以将它与每个其他项目进行比较。同样,这完全取决于浏览器的排序实现,您的结果肯定会有所不同。众所周知,微软几乎被起诉,因为他们正是这样做的:TIL。这是一篇非常简洁的文章,它应该向OP演示如何不使用该功能!谢谢你的链接!为什么每次调用函数时都将17作为第二个参数传入?这取决于浏览器如何实现排序。我可以看到它被选为快速排序中的第一个轴。或者因为它在数组的中间,所以它可能已经结束了,因为合并中的合并步骤可以将它与每个其他项目进行比较。同样,这完全取决于浏览器的排序实现,以及 你的结果肯定会有所不同。