通过数组元素某字段排序

通过数组元素某字段排序

/*
  通过数组元素某字段排序
    先根据rank排序,再根据age排序,最后根据name排序
    data.sort(compare('rank', compare('age', compare('name'))));
*/
const compareArr = (name, 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;
      }
      if (typeof a === typeof b) {
        return a < b ? -1 : 1;
      }
      return typeof a < typeof b ? -1 : 1;
    } else {
      throw ("error");
    }
  }
}

 

 
 
 
 
 
 
posted @ 2022-04-25 11:07  时光独醒  阅读(2)  评论(0编辑  收藏  举报