JS sort方法基于数组对象属性值排序

作者:代码拾荒

时间:2026-10-23

浏览:468

本文介绍如何利用JavaScript的sort方法结合自定义比较函数,实现对包含对象的数组按指定属性值进行排序。通过封装比较逻辑,可灵活控制升序或降序排列,适用于前端数据处理场景。

文章目录

按对象属性值排序的基本实现

sort函数接受比较函数作为参数,此处通过闭包接收属性名,其余用法与标准sort一致。


var arr = [
  {name:'zopp',age:0},
  {name:'gpp',age:18},
  {name:'yjj',age:8}
];

function compare(property){
  return function(a,b){
    var value1 = a[property];
    var value2 = b[property];
    return value1 - value2;
  }
}
console.log(arr.sort(compare('age')))

按对象属性值排序的基本实现

依据参数差异,如何判断执行升序或降序逻辑?

支持升序与降序的通用排序函数


/**数组根据数组对象中的某个属性值进行排序的方法 
   * 使用例子:newArray.sort(sortBy('number',false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序
   * @param attr 排序的属性 如number属性
   * @param rev true表示升序排列,false降序排序
   * */
  sortBy: function(attr,rev){
    //第二个参数没有传递 默认升序排列
    if(rev == undefined){
      rev = 1;
    }else{
      rev = (rev) ? 1 : -1;
    }
    
    return function(a,b){
      a = a[attr];
      b = b[attr];
      if(a < b){
        return rev * -1;
      }
      if(a > b){
        return rev * 1;
      }
      return 0;
    }
  }

本文内容旨在辅助学习,欢迎继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章