var arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
数组中对象作为数组元素,要根据对象属性的值对数组元素进行排序。
根据age属性将数组元素进行升序排序:
arr.sort((a,b)=>{
//return( a[age] - b[age])
return( a.age - b.age)
})
//[{ name: "zopp", age: 0 },{ name: "yjj", age: 8 },{ name: "gpp", age: 18 }]
将对象属性和升序降序作为参数,可以方便的改变数组的排序方式。
//attr为数组排序是依据对象的哪一个属性
//rev为升序还是降序,默认为升序,true表示升序,法拉色表示降序
function sortBy(attr,rev){
//第二个参数没有传递 默认升序排列
if(rev == undefined){
rev = 1;
}else{
rev = (rev) ? 1 : -1;
}
return function(a,b){
a = a[attr];
b = b[attr];
if(a < b){
return rev * -1;
}
if(a > b){
return rev * 1;
}
return 0;
}
}
arr.sort(sortBy("name",false))
//按name进行降序排序