1. arr.sort()方法实现原理介绍
- 直接使用arr.sort()可以实现10以内的排序
let arr = [5, 5, 4, 4, 3, 2, 1, 7, 8, 9, 8, 6, 9, 2, 1];
// 数组排序方法
arr.sort();
console.log(arr);
打印的结果如下,已经实现了排序
- arr.sort()可以传参,参数是一个函数
arr.sort((a,b)=>{
return a-b; // 顺序- 就是正序
// return b-a; // 逆序- 就是倒序
});
- 如果 compareFn(a, b) 大于 0,b 会被排列到 a 之前。
- 如果 compareFn(a, b) 小于 0,那么 a 会被排列到 b 之前;
- 如果 compareFn(a, b) 等于 0,a 和 b 的相对位置不变。
let arr2 = [5,5,4,4,3,10,2,1,7,8,9,8,6,9,2,1];
arr2.sort((a, b) => { // 参数反过来减就是逆序
// 8 7
// return a - b; // 判断a是否大于b => a比b大 => 排b,a => 7,8
// 7 8
return b - a; // 判断b是否大于a => b比a小 => 排a,b => 8,7
});
2. 数组去重排序
- 自定义函数,用Set实现去重
function killDup(arr){
return Array.from(new Set(arr))
}
- 进行数组去重排序
let arr2 = killDup([5,5,4,4,3,10,2,1,7,8,9,8,6,9,2,1]);
arr2.sort((a,b)=>{
return b - a; // 判断b是否大于a => b比a小 => 排a,b => 8,7
});