JavaScript 对象数组按属性排序实现方法

作者:青柠时间:2026-10-23 11:03:26浏览:260

本文介绍如何在 JavaScript 中对包含对象的数组进行排序。通过示例展示了直接使用箭头函数按数值属性排序,以及封装通用比较函数以支持指定属性和升降序排列的方法,供开发参考。

JavaScript 对象数组排序实现

本文主要讲解在 JavaScript 中依据对象数组的特定属性进行排序的代码实现。文中提供了详细的示例代码,对学习和实际应用具有参考价值。

具体实现代码如下所示:


var arr = [
  {name:'a',age:9},
  {name:'b',age:12},
  {name:'c',age:8}
];
 arr.sort((a,b)=>{
  return a.age - b.age
 });

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;
    }
  }

以上即为本文分享的全部内容,希望能为各位的学习或工作提供帮助,欢迎继续支持本站。

作者最新文章