【前端】sort:js按照固定顺序排序

文章目录

场景

假设想要排序:[es、pt、de、fr]。要求这几个字符串一定排在前面,其他顺序随意。

代码

使用sort。

sort(a,b)原理:数组中a与b进行比较。若返回-1,a在前。返回1,b在前。返回0,顺序不变。

若是从小到大排序,经常使用a-b:返回负数表示a更小且a排前;返回正数表示b更小且b排前,即,a-b表示小的排前

typescript 复制代码
// 我们要对它进行排序
const array = [
  { language: "en", ord: 11 },
  { language: "es", ord: 11 }
];

// 顺序
const priorityLanguages = ['es', 'pt', 'de', 'fr'];

array.sort((a, b) => {
  const aIsPriority = priorityLanguages.includes(a.language);
  const bIsPriority = priorityLanguages.includes(b.language);
  
  if (aIsPriority && bIsPriority) {
    return priorityLanguages.indexOf(a.language) - priorityLanguages.indexOf(b.language);
  }
  if (aIsPriority) return -1;
  if (bIsPriority) return 1;
  return 0;
});
相关推荐
heyCHEEMS4 分钟前
切页回来组件消失了?一个浏览器渲染机制引起的容器高度坍塌 bug
前端·浏览器
张元清5 分钟前
React scrollIntoView + useRef:滚动到指定元素 (2026)
javascript·react.js
iaku5 分钟前
Prompt 不是玄学:写给前端的 Prompt 工程指南
前端·人工智能
爱丶不疚6 分钟前
在 dsh 仓库里扒到的宝藏工作流:详解 .agents/notes 决策沉淀系统
前端·agent·vibecoding
萧瑟余晖6 分钟前
Java深入解析篇三十四之分布式事务
java·开发语言·分布式
CAE虚拟与现实6 分钟前
源码注解 /class 注解 / 运行时注解三者生命周期
java·开发语言
有脚就行9 分钟前
第24篇-Go-gRPC推理服务-高性能跨语言通信
开发语言·人工智能·后端·golang
码匠许师傅9 分钟前
【C++ 面试真题】聊聊 C++ 的关联容器
开发语言·c++·面试
喜欢睡觉10 分钟前
从"送花"讲懂 JavaScript:对象、数据类型与代理模式
前端
渣波11 分钟前
NestJS 企业级后端架构实战:从核心代码到工程化思维的深度重构
前端·typescript·nestjs