需求:现有一个数组arr,如下,想分别根据age和name进行排序,该怎么操作?
var arr=[{
name:"ZaChary",
age:16
},{
name:"Lily",
age:18
},{
name:"Nicholas",
age:17
}];
解决方案:用sort()+比较函数
实现方式:
1、比较函数
function createComparisonFunction(propertyName){
return function(object1,object2){
var value1=object1[propertyName];
var value2=object2[propertyName];
if(value1<value2){
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
}
2、使用
console.log(arr.sort(createComparisonFunction("name")));
console.log(arr.sort(createComparisonFunction("age")));