要根据对象的某个属性排序,首先要理解sort()方法的原理
-
sort()会改变原数组
-
sort()在不传入参数时默认升序排列
-
若想自定义排序,如降序排列,按照对象某个属性排序等,就必须往sort()中传入一个回调函数作为参数
var arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
//定义一个比较器
function compare(prop){
// 默认传入两个参数,即为数组中要比较的两项
return function(a,b){
var value1 = a[prop];
var value2 = b[prop];
// 通过返回值的正负来排序,返回值必须是数字类型
return value1 - value2;
}
}
arr.sort(compare('age'))
console.log(arr)