在此之前,只知道

arr.sort((a,b) => a - b) 升序

arr.sort((a,b) => b - a) 降序

也不懂所以然,

 

今天写着写着就有了新发现和心得,先看下面代码

原来 a, b 分别为 后一项和前一项,

 

 然后发现如果 返回值 为正数 则为升序,反之降序

 

 

这里就知道这个简单例子 [1,3,2].sort((a,b) => a-b)

1、 a=3 b=1 a-b>0  所以正序 [1,3, 2]

2、 a=2 b=3 a-b<0 所以为降序 [1,2,3]

 最终返回 [1,2,3]

 

然后再看,数组乱序用 sort 实现

[1,2,3].sort((a,b) => Math.random() > 0.5 ? -1 : 1)

随机数大于 0.5 则返回 -1 ,a,b 这两项 倒序, 反之。。。

posted on 2021-03-15 12:26  京鸿一瞥  阅读(157)  评论(0)    收藏  举报