行2:先获得数组的中间分界,被2整除时是数组长度减一(因为数组下标从0起算),否则是向下取整数组长度除以2的值;
行3~行4是同一行分开写:将传递来的数组取出数组两半后,依次按大到小、按小到大排序。其中,数组一分为二使用了过滤器 filter,数组下标小于等于中间分界的是一组,大于中间分界的是另一组;排序则用 sort 方法,给数字指定排序方式,分别是 a - b 和 b - a,如此,两个数组均按需排序成功。
行5:返回新数组,新数组是数组一和数组二的重新拼接。
getRanAr = (min, max, num) => {
let res = [];
let ar = Array(max - min + 1).fill(min).map((id,key) => id + key);
while(num > 0) {
let idx = Math.floor(Math.random() * ar.length);
res.push(ar[idx]);
ar.splice(idx, 1);
num --;
}
return res
};