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

按指定优先级排序对象数组:Premium类元素优先升序排列

解决方案

可以通过筛选+排序+拼接的方式实现需求:

  1. 先从原数组里筛选出所有name以Premium开头的元素,对这部分元素按name升序排列
  2. 再筛选出剩下的非Premium元素(保留原数组中的相对顺序)
  3. 把排序后的Premium数组和非Premium数组拼接起来

代码实现

const originalArray = [
  { name: '4K UHD', commentator: 'Ali' },
  { name: 'English 1 HD', commentator: 'Ahmed' },
  { name: 'English 3 HD', commentator: 'Ahmed' },
  { name: 'Premium 1 HD', commentator: 'Ali' },
  { name: 'Premium 2 HD', commentator: 'Ahmed' },
];

// 筛选并排序Premium元素
const premiumItems = originalArray
  .filter(item => item.name.startsWith('Premium'))
  .sort((a, b) => a.name.localeCompare(b.name));

// 筛选非Premium元素(保留原顺序)
const nonPremiumItems = originalArray.filter(item => !item.name.startsWith('Premium'));

// 拼接得到结果
const result = [...premiumItems, ...nonPremiumItems];

console.log(result);

补充说明

  • 若需要匹配name中包含Premium的元素(而非仅开头),可把startsWith替换为includes
  • localeCompare方法用于字符串自然排序,能确保Premium 1 HD排在Premium 2 HD之前
  • 非Premium元素会保留原数组的相对顺序,与你给出的两种预期结果均兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:50:35