js sort 根据两个字段为条件排序

栗子
const arr = [
    {
        name: '一',
        outdate_days: 0,
        surplus_days: 1
    },
    {
        name: '二',
        outdate_days: 3,
        surplus_days: 0
    },
    {
        name: '三',
        outdate_days: 2,
        surplus_days: 0
    }
]
arr.sort((a, b) => {
  if (a.outdate_days <= 0) {
    if (b.outdate_days <= 0) {
      return a.surplus_days - b.surplus_days
    } else {
      return a.surplus_days - b.outdate_days
    }
  }
  if (a.surplus_days <= 0) {
    if (b.surplus_days <= 0) {
      return a.outdate_days - b.outdate_days
    } else {
      return a.outdate_days - b.surplus_days
    }
  }
})
//  结果
[
    {
        "name": "一",
        "outdate_days": 0,
        "surplus_days": 1
    },
    {
        "name": "三",
        "outdate_days": 2,
        "surplus_days": 0
    },
    {
        "name": "二",
        "outdate_days": 3,
        "surplus_days": 0
    }
]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容