我有一个重复的字符串数组,没有特定的顺序或排序。
const array = ["Train", "Car", "Car", "Train", "Bicycle", "Car", "Bicycle", "Car", "Train"]
我想按特定顺序对数组进行排序,特别是Train, Bicycle, Car
。
因此应该对其进行排序。
["Train", "Train", "Train", "Bicycle", "Bicycle", "Car", "Car", "Car", "Car"]
此外,如果数组不包含字符串之一,则它仍应遵循相同的顺序,只是跳过该字符串即可。
我尝试了多种方式对它进行排序,但是没有运气。感谢帮助!
答案 0 :(得分:1)
简单的订单功能可以完成您的工作
const array = [
'Train',
'Car',
'Car',
'Train',
'Bicycle',
'Car',
'Bicycle',
'Car',
'Train',
];
const order = (str) => {
if (str === 'Train') return 1;
if (str === 'Bicycle') return 2;
if (str === 'Car') return 3;
return 0;
};
const ret = array.sort((x, y) => order(x) - order(y));
console.log(ret);
答案 1 :(得分:1)
您可以按所需顺序获取一个对象,然后按对象的值排序。
const
array = ["Train", "Car", "Car", "Train", "Bicycle", "Car", "Bicycle", "Car", "Train"],
order = { Train: 1, Bicycle: 2, Car: 3 };
array.sort((a, b) => order[a] - order[b]);
console.log(...array);