文章目录
场景
假设想要排序:[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;
});