需求:现有一个数组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")));