面试题:JS 快速打乱一个数组

FE-Interview  javascript 65

先上代码

sort + Math.random()

 解析:

     sort() 方法用于对数组的元素进行排序。sort( )方法推荐通过传入一个函数来定义自己想要的排序规则

     函数内会传两个参,如图

     注意:  sort()方法直接作用于原数组,不生产副本,如不想改变原数组请拷贝一份副本再排序

     

     根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。

     如果a等于b,就返回0。

     如果a大于b,就返回一个大于0的值

     

     所以,要打乱数组,最简单的只需要返回随机的正负数就好

     而js的 random( )方法返回一个0-1之间的随机数,用随机数减去 0.5,就可以实现随机返回一个正负数字完成乱序了