数组方法sort使用比较函数
2018-11-14 本文已影响16人
胡儒清
排序规则
数组的sort方法可以对数组进行排序,按照Unicode码进行排列,但遇到特殊情况,比如成员是字符串的数字,或者成员是对象的时候,就需要用到比较函数才能得到我们想要的结果
let arr = [
"100","3","20","50"
]
function compare(a,b){
return a-b;
}
console.log(arr.sort(compare));
总结:在比较函数里,规则如下
- return a-b; 那么当a>b的时候,a和b交换位置,就是把a放到b的后面,这时候是升序排列。
- return b-a; 则跟上面第一点反过来,这时候是降序排列。
数组成员是对象的处理方法
有如下数组,请按age进行降序排列
let arr = [
{name:'Tom',age: 20},
{name:'peter',age: 60},
{name:'Bruce',age: 10},
{name:'Lucy',age: 40},
]
function compare(p1,p2) {
let age1 = p1.age;
let age2 = p2.age;
// 降序排列
return age2 - age1;
}
arr.sort(compare);