【前端】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;
});
相关推荐
神奇小梵几秒前
c语言易错知识点
c语言·开发语言
人机与认知实验室1 分钟前
<span class=“js_title_inner“>如何看待特斯拉第三代Optimus机器人?</span>
开发语言·javascript·机器人·ecmascript·unix
Doris8935 分钟前
【 Vue】 Vue3全面讲解文档
前端·javascript·vue.js
换日线°5 分钟前
vue 实现Element Plus的炫酷主题切换
javascript·vue.js
Coding茶水间7 分钟前
基于深度学习的花朵识别系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·目标检测·机器学习
linweidong11 分钟前
大厂工程化实践:如何构建可运维、高稳定性的 Flutter 混合体系
javascript·flutter
Hexene...15 分钟前
【前端Vue】如何快速直观地查看引入的前端依赖?名称版本、仓库地址、开源协议、作者、依赖介绍、关系树...(Node Modules Inspector)
前端·javascript·vue.js
fanruitian16 分钟前
div水平垂直居中
前端·javascript·html
旭久19 分钟前
react+antd实现一个支持多种类型及可新增编辑搜索的下拉框
前端·javascript·react.js
摘星编程20 分钟前
用React Native开发OpenHarmony应用:Loading加载状态组件
javascript·react native·react.js