/**
* compareTo函数接受一个成员名字符串做为参数
* 并返回一个可以用来对包含该成员的对象数组进行排序的比较函数
* 例:
* var student= [
* {name:'张三',age:23,address:'江西'},
* {name:'李四',age:22,address:'湖南'},
* {name:'王五',age:34,address:'广西'}
* ];
* student.sort(compareTo('age'));
*/
function compareTo(name) {
return function(o, p) {
var a, b;
if (typeof o === "object" && typeof p === "object" && o && p) {
a = o[name];
b = p[name];
if (a === b) {
return 0;
}
if(!isNaN(a)&&!isNaN(b)){
return parseInt(a) < parseInt(b) ? -1 : 1;
}
if (typeof a === typeof b) {
return a < b ? -1 : 1;
}
return typeof a < typeof b ? -1 : 1;
}
};
}
};