JavaScript 高阶函数 sort对象传入指定 值排序

本文介绍了一种使用JavaScript高阶函数sort对对象数组进行排序的方法,通过定义通用的sortByproperty函数,可以根据不同的属性对数组元素进行排序,提高了代码的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript 高阶函数 sort对象传入指定 值排序

这里写图片描述
JavaScript sort()排序

  var persons= [
    { name:'john',age:23},
    { name:'Ada' ,age:41},
    { name:'zoo' ,age:3},
    { name:'Lemo',age:39}
  ]
//这种显然不太灵活
  function sortByname(obj1, obj2) {
    if(obj1.name > obj2.name){
      return 1;
    }else if (obj1.name == obj2.name){
      return 0;
    }else {
      return -1;
    }
  }
  //这种显然不太灵活
  function sortByage(obj1, obj2) {
    if(obj1.age > obj2.age){
      return 1;
    }else if (obj1.age == obj2.age){
      return 0;
    }else {
      return -1;
    }
  }
  //改进写法
  function sortByproperty(properyName) {
    var sortFun = function (obj1, obj2) {
      if(obj1[properyName] > obj2[properyName]){
        return 1;
      }else if (obj1[properyName] == obj2[properyName]){
        return 0;
      }else {
        return -1;
      }
    }
    //这里注意返回是函数
    return sortFun
  }
  persons.sort(sortByproperty('age'))//现在按传入的排序

  for (var i = 0; i < persons.length; i++) {
    console.log(persons[i]);
  }

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值