You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定term键值对JavaScript JSON对象数组排序?

自定义规则排序对象数组

原始数组:

[
  {
    term: 'summer'
  },
  {
    term: 'winter'
  },
  {
    term: 'fall'
  },
  {
    term: 'summer'
  },
  {
    term: 'summer'
  }
]

需求:按照指定顺序排序,winter排首位,fall次之,summer最后,预期结果:

[
  {
    term: 'winter'
  },
  {
    term: 'fall'
  },
  {
    term: 'summer'
  },
  {
    term: 'summer'
  },
  {
    term: 'summer'
  }
]

实现方法

核心思路是先定义优先级映射表,给每个term分配对应的排序权重,再利用数组的sort()方法根据权重比较元素顺序。

代码实现:

// 定义自定义排序优先级,值越小优先级越高
const priorityMap = {
  winter: 0,
  fall: 1,
  summer: 2
};

// 原始目标数组
const originalArr = [
  { term: 'summer' },
  { term: 'winter' },
  { term: 'fall' },
  { term: 'summer' },
  { term: 'summer' }
];

// 执行排序
const sortedArr = originalArr.sort((itemA, itemB) => {
  return priorityMap[itemA.term] - priorityMap[itemB.term];
});

console.log(sortedArr);

说明

  • 优先级映射表priorityMap中,数值越小代表排序位置越靠前,比如winter对应0,会排在最前面。
  • sort()方法的回调函数通过对比两个元素term对应的权重值来调整顺序:若itemA的权重小于itemB,返回负数,itemA会被排到itemB前面;反之则排在后面。
  • 这种方式扩展性极强,后续调整排序规则只需修改priorityMap的键值对即可。

内容的提问来源于stack exchange,提问作者David Faizulaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:00:58