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

如何对object构成的array按字母排序并合并相同letter的title项

JS数组合并排序实现方案

注意:你给出的目标输出中{ letter: 'G', title: 'Cor', 'Car' }不符合JS对象语法规范,JS对象的单个键只能对应一个值,因此合理的实现是将同letter的多个title存入数组,单个title可保留字符串类型,以下方案基于该合法结构输出。

实现逻辑

  • 先遍历原数组,用映射表聚合相同letter对应的所有title
  • 将聚合后的映射表转为数组,按letter的字母顺序排序
  • 格式化为最终需要的对象结构

完整代码

const originalArr = [
    { letter: 'A', title: 'All' },{ letter: 'B', title: 'Business' },
    { letter: 'G', title: 'Cor' },
    { letter: 'G', title: 'Car' },
];

// 聚合同letter的title
const letterMap = {};
originalArr.forEach(item => {
  if (!letterMap[item.letter]) letterMap[item.letter] = [];
  letterMap[item.letter].push(item.title);
});

// 排序并生成最终数组
const result = Object.entries(letterMap)
  .sort(([letterA], [letterB]) => letterA.localeCompare(letterB))
  .map(([letter, titles]) => ({
    letter,
    title: titles.length === 1 ? titles[0] : titles
  }));

输出结果

console.log(result)
// 输出:
// [
//   { letter: 'A', title: 'All' },
//   { letter: 'B', title: 'Business' },
//   { letter: 'G', title: [ 'Cor', 'Car' ] }
// ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:57:03