【前端】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;
});
相关推荐
csbysj20203 分钟前
CSS !important:深度解析与最佳实践
开发语言
初心未改HD8 分钟前
Go语言测试与Benchmark:测试驱动开发的实践指南
开发语言·golang
chxii16 分钟前
lua流程控制语句和table(表)数据结构
开发语言·junit·lua
用户0595401744619 分钟前
把 Redis 持久化测试从 800 行 Shell 换成 30 行 pytest,排错效率翻了 10 倍
前端·css
Rkgua20 分钟前
事件流模型是什么和DOM事件模型等关系
javascript
逻辑驱动的ken23 分钟前
Java高频面试考点场景题20
java·开发语言·深度学习·面试·职场和发展
GISer_Jing24 分钟前
AI全栈工程师知识体系全景:从前后端核心架构到落地项目全拆解
前端·人工智能·后端·ai编程
W.A委员会24 分钟前
多行溢出在末尾添加省略号
开发语言·javascript·css
wjs202427 分钟前
RSS Item 元素:深入解析与使用指南
开发语言
Wect29 分钟前
深度剖析浏览器跨域问题
前端·面试·浏览器