ITPub博客

首页 > IT职业 > IT图书 > js数组排序函数sort()

js数组排序函数sort()

IT图书 作者:xu_xufei 时间:2021-09-09 08:57:21 0 删除 编辑

arrayobject.sort(sortby);

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。

//by函数接受一个成员名字符串做为参数
//并返回一个可以用来对包含该成员的对象数组进行排序的比较函数
var by = function(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 (typeof a === typeof b) {
return a }
return typeof a }
else {
throw ("error");
}
}
}

//by函数接受一个成员名字符串和一个可选的次要比较函数做为参数
//并返回一个可以用来包含该成员的对象数组进行排序的比较函数
//当o[age] 和 p[age] 相等时,次要比较函数被用来决出高下
var by = function(name,minor){ //minor回调函数使用
return function(o,p){
var a,b;
if(o && p && typeof o === 'object' && typeof p ==='object'){
a = o[name];
b = p[name];
if(a === b){
return typeof minor === 'function' ? minor(o,p):0;
} //如果minor为空,没传,则返回0,两个数据相等
if(typeof a === typeof b){
return a }
return typeof a }else{
thro("error");
}
}
}

employees.sort(by('age',by('name')));

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4684/viewspace-2798121/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-30

  • 博文量
    94
  • 访问量
    852