例如,假设有一个对象数组,我们想要根据某个对象属性对数组进行排序。而传递给数组sort()方法的比较函数要接受两个参数,既要比较的值。可是,我们需要一种方式来致命按照那个属性来排序。方法如下
//作为值的函数
function createComparisonFunction(propertyName){
return function(object1,object2){
var value1=object1[propertyName];
var value2=object2[propertyName];
if(value1<value2) return -1;
if(value1>value2) return 1;
else return 0;
}
}
var data = [{name:'Z',age:28},{name:'N',age:29}];
data.sort(createComparisonFunction('name'));
console.log(data[0].name);
data.sort(createComparisonFunction('age'));
console.log(data[0].name);